読者です 読者をやめる 読者になる 読者になる

Fight the Future

何かを始めたら、半分成功したのと同じ

DbUnitライブラリでデフォルトのDatabaseOperationを指定できます

TestNG

@SetupOperationでDbUnitのDatabaseOperationを指定できるわけですが、
テストメソッドごとに毎回指定するのは手間なので、
テストスイート全体でデフォルトを設定できるようにしました。


接続情報と同様に、
testng.xmlか@DbUnitNGアノテーションで指定することができます。
もちろんデフォルトを指定しないこともできます。

こんな感じです。

@BeforeSuite
@DbUnitNG(driver = "com.mysql.jdbc.Driver", password = "root", url = "jdbc:mysql://127.0.0.1/testframework", username = "root", defaultOperation = DatabaseOperationType.CLEAN_INSERT)
public void beforeSuite() {}

アノテーションであればdefaultOperation属性にEnumのDatabaseOperationTypeを指定します。
XMLであれば要素にname「defaultOperation」で指定します。

<suite name="DbUnitNG">
	<parameter name="defaultOperation" value="CLEAN_INSERT"></parameter>
	<parameter name="driver" value="com.mysql.jdbc.Driver"></parameter>
	<parameter name="url" value="jdbc:mysql://127.0.0.1/testframework"></parameter>
	<parameter name="username" value="root"></parameter>
	<parameter name="password" value="root"></parameter>

defaultOperationの値は次の文字列を指定します。

  1. NONE
  2. UPDATE
  3. INSERT
  4. REFRESH
  5. DELETE
  6. DELETE_ALL
  7. TRUNCATE_TABLE
  8. CLEAN_INSERT


もちろん、デフォルトを指定していても@SetUpOperationや@TearDownOpearionで指定すれば、後者を優先します。