@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であれば
<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の値は次の文字列を指定します。
- NONE
- UPDATE
- INSERT
- REFRESH
- DELETE
- DELETE_ALL
- TRUNCATE_TABLE
- CLEAN_INSERT
もちろん、デフォルトを指定していても@SetUpOperationや@TearDownOpearionで指定すれば、後者を優先します。