TestNG
ライブラリDbUnitNGで、 ネストしたBeanをDbUnitのデータセットに変換できるように対応しました。 ネストしたBeanとは次のようなことを意味してます。 あるBeanのプロパティとして、 別のBeanを持つ 別のBeanをListで持つ 別のBeanを配列で持つ テストコード…
BeanのListからDataSetへ変換する部分について、テストコードを記述しました。 TestNGでテストしてます。 Beanがネストしない(Beanが他のBeanをプロパティとして持たない)限り、 リストをデータセットに変換できるようになってます。 # いくつかバグを修正し…
DbUnitで期待値をXMLやExcelに記述すると思うけど、 日付の書式は基本的にDate.valueOf()やTimestamp.valueOf()で有効な書式を記述する。 こんな感じ。 <dataset> <datebean javaUtilDate="2008-08-08" javaSqlDate="2008-08-08 15:20:11" timestamp="2008-08-08 15:20:11.000" /> </dataset> 試したけど、java.util.Dateでもjava.sql.Date…
DbUnitのFlatXmlDataSetはXMLからDataSetを生成するときに利用する。 だけど1点注意。 FlatXmlDataSetは1つ目の要素の属性をテーブルのカラムとする。 だから、こういうのはダメだ。 <dataset> <simplebean i="0" /> <simplebean string="" i="1" /> <simplebean string="a" i="-1" /> </dataset> カラムstringをnullにしたいがために、1つめの要素にstring要素を記…
たとえば数値の引数を2つとって、それを足し算したりかけ算したりするメソッドをテストするとして。 public int add(int a, int b) public int multiple(int a, int b) みたいな。 こういうメソッドをテストする場合、引数のバリエーションを考えてテストす…
DbUnitNG Wiki - SourceForge.JP 今までBlogに書いていた、ライブラリの使い方をSourceForgeのWikiにまとめました。 よかったら見てみてください!
過去のエントリでBeanのListとDbUnitのDataSetの比較をなんとかしたいと思ったわけだけど。 DbUnitの弱点はBeanのListとDataSetを比較できないこと - Fight the Future じゅくのblog BeanのListとDbUnitのDataSetを比較する方法を考える - Fight the Future …
DbUnitの弱点はBeanのListとDataSetを比較できないことから考えて、実際に比較する方法を考えようと思う。 方法は2つある。 BeanのListをIDataSet実装オブジェクトに変換する DataSetから比較するBeanのListに変換する 2の方法だと、プリミティブなプロパテ…
DbUnitを使うにあたって一番問題になることは、Daoから取得したJava BeansのListとExcelの期待値を比較できないことだ。 Excel(XML)の期待値はDbUnitではDataSetとして表す。 だけど、DbUnitのAssertクラスであるorg.dbunit.AssertionクラスではDataSet同士…
TestNGとJUnit4のもっとも大きな違いはテストクラスのインスタンス生成だ。 あるテストクラスに複数のテストメソッドがあるとき、2つのフレームワークはこう振る舞う。 TestNGは(基本的に)テストクラスのインスタンスは1つしか作らない JUnit4はテストメソッ…
<dataset> <DEPT /> <EMP /> </dataset> のようにテーブルを要素名にしてを列挙するだけでよい。 逆にデータを登録するときにはカラムの値を属性にする必要がある。 <dataset> <DEPT DEPTNO="10" DNAME="ACCOUNTING" LOC="NEW YORK"/> </dept></dataset>
ITestListenerインタフェースのonTestStartメソッドは、 「Invoked each time before a test will be invoked.」なので(特にwill be invokedに注目)、 dependsOnXXX属性を使っていてテストがSkipされるときはonTestStart()メソッドは呼び出されない。
バージョン5.3から追加された要素。 要は他のテストスイートファイルを取り込める。 <suite-files> <suite-file path="ファイルのパス"> </suite-files> </suite-files> ちなみにファイル間のパラメータの継承とかはないそうです。 Indeed, inheritance of parameters in testng.xml files is not supported, for a couple of reasons: I …
ソースはhttp://sourceforge.jp/projects/dbunitng/からダウンロードしてもらうとして。 TestNGのテストスイートファイルであるtestng.xmlにデータベース接続情報を記述します。 <parameter name="driver" value="com.mysql.jdbc.Driver"></parameter> <parameter name="url" value="jdbc:mysql://127.0.0.1/データベース名"></parameter> <parameter name="username" value="ユーザー名"></parameter>
TestNGとDbUnitを連携させ、より簡単にデータベース接続テストを作成できるようにします。たとえば、アノテーションを用いて初期データを投入できます。 SourceForge.JP: Project Info - DbUnitNG
こんなのしたくない?? @SetUpOperation(value = DatabaseOperationType.CLEAN_INSERT, pathname = "org/dbunitng/dept-emp.xml") @Test public void verifySelectAllFromDept() { // call target method and assert... } 要はDbUnitのアノテーション対応。…
TestNGとDbUnitを連携させることで、テストクラスはTestCaseを継承する必要がなくなる。 TestCaseを継承する代わりに、XXDatabaseTesterというDbUnitにあるクラスを使う。 JdbcDatabaseTester DataSourceDatabaseTester DriverManagerからConnectionを作るか…
TestNGというテスティングフレームワークがある。 JavaにおけるテスティングフレームワークはもちろんJUnitがデファクトスタンダードだ。 でも、TestNGにもスゴくいいところがある。 TestNG is a testing framework inspired from JUnit and NUnit but intro…
ものすごく簡単だ。プラグインを1つ入れるだけだ。 http://testng.org/doc/eclipse.html そしてeclipseのプロジェクトでTestNGのjarをビルドパスに加えるだけだ。 テストの実行もJUnitのときと操作が変わるわけじゃないので、新しい操作を覚える必要もない。…