DbUnitをTestNGと統合する必要があります。
1)DbUnitは基本的にJUnitの拡張であるため、TestNGでDbUnitを使用することは可能ですか。
2)はいの場合、どのように?
最後に、TestNGでDbUnitを使用する方法を見つけました!
IDatabaseTesterのインスタンスの使用は機能します。
ただし、別の回避策は次のとおりです。AbstractDatabaseTesterを拡張し、getConnectionを実装して、必要な関数をオーバーライドします。ただし、重要なことの1つは、テストの前後にonSetup()とonTeardown()を呼び出すことです。
お役に立てれば...
何をしようとしているのか正確にはわかりませんが、 Unitilsが役立つかもしれません。これはdbunit拡張機能に似ていますが、それに限定されるものではなく、TestNgとの統合をサポートします(テストケースのUnitilsTestNGクラスを拡張することにより)。
これは、必要な機能を実行する単純なクラスです。
public class SampleDBUnitTest {
IDatabaseTester databaseTester;
IDataSet dataSet;
@BeforeMethod
public void setUp() throws Exception {
// These could come as parematers from TestNG
final String driverClass = "org.postgresql.Driver";
final String databaseUrl = "jdbc:postgresql://localhost:5432/database";
final String username = "username";
final String password = "password";
dataSet = new FlatXmlDataSet(Thread.currentThread().getContextClassLoader().getResourceAsStream("dataset.xml"));
databaseTester = new JdbcDatabaseTester(driverClass, databaseUrl, username, password);
databaseTester.setSetUpOperation(DatabaseOperation.CLEAN_INSERT);
databaseTester.setDataSet(dataSet);
databaseTester.setTearDownOperation(DatabaseOperation.NONE);
databaseTester.setDataSet(dataSet);
databaseTester.onSetup();
}
@AfterMethod
public void tearDown() throws Exception {
databaseTester.onTearDown();
}
@Test
public void t() throws Exception {
// Testing, testing
}
}