我需要将DbUnit与TestNG集成。
1) DbUnit基本上是JUnit的扩展,那么能否在TestNG中使用DbUnit?
2) 如果可以,应该如何做?
终于找到了一种使用TestNG与DbUnit结合的方法!
使用IDatabaseTester的实例是可行的,
但另一个解决方法是: 扩展AbstractDatabaseTester并实现getConnection并覆盖必要的函数。 但重要的一点是在测试之前和之后调用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
}
}