TestNG
TestNG+DbUnitライブラリであるDbUnitNGで、DbUnitライブラリ@TableAssertでDBとアサートできます - Fight the Future じゅくのblogにある@TableAssertに機能を追加しました。結果をDBから取得するクエリをプロパティファイルに記述できるようにしました。 @…
さらに、Googleは「Google Testing Blog」というBlogをやっていた。 内容もかなり興味深い。 ただ、1エントリの文章量が多く、読むのが遅い僕にはつらい。。。 Google Testing Blog
さっきのTestNGの動画で知ったばかりだけど、どうやらGoogleは毎年Google Test Automation Conferenceというのをやってる。 Google Testing Blog: Call for Attendance: GTAC 2008 今年はシアトルで10/23,24にやるみたい。 TestNGの動画は去年のもので、資料…
FounderであるCedric BeustのGoogle Test Automation Conferenceのプレゼン。
JARファイルをダウンロードする TestNGのサイトにいきます。 メニューから「Download」を選びます。 「download TestNG here.」のリンクを押すと最新のJARファイルをダウンロードできます。 ダウンロードしたzipファイルを解凍します。 解凍したディレクトリ…
僕の作っているTestNG + DbUnitライブラリでDBとのアサートをアノテーションで指定できるわけですけど。 @TableAssert(names = "dept", pathname = "insert_expected.xml") @SetUpOperation(pathname = "dept.xml", value = DatabaseOperationType.DELETE_AL…
JUnitはTestNGよりも多く採用され拡張されているものの、TestNGの方が多くの機能を提供し、JUnit用のテスト(スクリプト)を実行することも可能なので、テスト・フレームワークとしてTestNGを選択する方が魅力的な選択に思えるようである。 InfoQ: JUnitは死な…
DbUnitNG プロジェクト日本語トップページ - SourceForge.JPで期待値のファイルとデータベースのテーブルをアサートするアノテーションを作りました。 @TableAssertです。 こんな感じ。 @TableAssert(names = "dept", pathname = "insert_expected.xml") @Se…
TestNGプラグインのリスナーより順序を前で自分のリスナーを登録したい - Fight the Future じゅくのblogで困っているわけだけど、 こりゃTestNGのソースを変えないと無理かもしれないなあ。 TestNGのeclipseプラグインはTestNGクラスではなくサブクラスのRe…
<dataset> <DEPT DEPTNO="10" DNAME="[null]" LOC="NEW YORK"/> </dataset> [null]と記述すると、nullとして扱います。 AssertionHelperクラスを使ってアサートする場合です。 内部的にはReplacementDataSetを使っています。
DbUnitNG プロジェクト日本語トップページ - SourceForge.JP 期待値ファイルからデータセットを作成する際に、ReplacementDataSetを使用するようにしました。 @SetupOperationにおいてテストスイート全体でデフォルトのでDatabaseOperationを設定できるよう…
TestNGプラグインのリスナーより順序を前で自分のリスナーを登録したい - Fight the Future じゅくのblogがどうしてもわからないので、 testng-users | Google Groups に投げてみた。 Hi, With TestNG eclipse plugin, I add my listener class. Then listen…
eclipseのTestNGプラグインを利用してデバッグ実行すると、 リスナーは以下の順で Listに入っていた。 [org.testng.remote.strprotocol.RemoteMessageSenderTestListener@50cf54, org.testng.reporters.TextReporter@5bc8c9, org.dbunitng.listeners.DbUnitN…
誰か助けてください>< 期待値とDBのテーブルを比較するようなテストなら、アサートもアノテーションでできるようにしようと考えた。 こんな感じで。 @TableAssert(names = "dept", pathname = "insert_expected.xml", queries = "select dname, deptno, loc …
DbUnitでは初期値や期待値をXMLやExcelに記述することができる。 ただ、nullを表現したいときは困ってしまう。 たとえばXMLで次のように記述したとする。 <dataset> <HUMAN NAME="jyukutyo" NULLCOLUMN="" /> </dataset> この場合、NULLCOLUMNはnullではなく空文字となる。 本当にそうなるかサンプルプログラムで読み込…
public static void main(String[] args) throws Exception { JdbcDatabaseTester tester = new JdbcDatabaseTester( "com.mysql.jdbc.Driver", "jdbc:mysql://127.0.0.1/testframework", "root", "root"); QueryDataSet dataSet = new QueryDataSet(tester.…
TestNGではtestng.xml(ファイル名は任意)というXMLを使ってテストを実行するのですが、 XMLを使わずにプログラミングでテストを実行することもできます。 public static void main(String[] args) { TestNG testNG = new TestNG(); testNG.addListener(new D…
@SetupOperationでDbUnitのDatabaseOperationを指定できるわけですが、 テストメソッドごとに毎回指定するのは手間なので、 テストスイート全体でデフォルトを設定できるようにしました。 接続情報と同様に、 testng.xmlか@DbUnitNGアノテーションで指定する…
DbUnitNG Wiki - SourceForge.JP ブログに書いていたことはすべてWikiに転載してます!
DbUnitNG プロジェクト日本語トップページ - SourceForge.JPで、データベースへの接続情報をアノテーションでも設定できるようにしました。 と同時に、スキーマも記述できるようにしました。 さらに、JDBCのURLから判断して、DbUnitのIDataTypeFactoryを自動…
Suite > Testなので。 ISuiteListener ITestListener ISuiteListenerもITestListenerもonStart()とonFinish()があるので、 詳しく書くとこうなる。 ISuiteListener#onStart() ITestListener#onStart() ITestListener#onFinish() ISuiteListener#onFinish()
テストケースの追加と、バグを修正しました! DbUnitNG プロジェクト日本語トップページ - SourceForge.JP AssertionHelperクラスを使えばラクにアサートすることができます。 List<Dept> deptList = deptDao.listAllDept(); AssertionHelper.assertEqualsOnlyColu</dept>…
trunk/DbUnitNG/sampleとsampletestディレクトリ以下にあります。 sampleはiBatisを使ったデータベースアクセスアプリです。 なので、DbUnitNGの依存ライブラリに加えてiBatisのライブラリが必要です。 DBはMySQLを使っていますが、他のDBでも動くはずです。…
テストにおいては、正しく例外が発生するかもテストする必要がある。 JUnit3の時代は、僕の周りではそのテストの書き方を理解している人が少なかった印象がある。 JUnit3では例外発生テストはこのように書くものだった。 import junit.framework.TestCase; p…
クラスパスのルートに「log4testng.properties」を置く。 log4testng.propertiesはこんな風に設定する。 # log4testng will log its own behavior (generally used for debugging this package only). log4testng.debug=true # Specifies the root Loggers l…
TestNG (pronounced "testing", but derived, one understands, from "Testing, the Next Generation") Next Generation Java Testing - JavaLobby Book Review TestNGと書いて「てすてぃんぐ」と読むようだ。 ちなみに、僕がよく使う発音の調べ方は、「XXX …
Livedoorクリップでライブラリをブクマしてくれてる人が! 1人だけど、超感激。
5000件をBeanのListで取得して、XMLの期待値と比較するパフォーマンステストをやってみました。 こういうのって一概に参考にならないことも多いと思うんですけど、感触だけでも伝えられたらって感じです。こんなテーブルに5000件入れます。 mysql> desc emp;…
DbUnitNGのバージョン0.1をリリースしました。 DbUnitのSetUpOperationとTearDownOperatonをアノテーション対応しました。 BeanのListをDbUnitのIDataSetに変換するBeanListConverterを実装しました。 DbUnitのAssertionに対するヘルパークラスAssertionHelp…
DbUnit + TestNGのライブラリでは、@SetUpOperationなどのアノテーションを使えるわけですが、これはTestNGでリスナーインタフェースが用意されているおかげです。 TestNGでは、リスナーインタフェースが4つ用意されています。 リスナー 説明 IMethodInterce…