我需要将DbUnit与TestNG集成。
1)是否可以将DbUnit与TestNG一起使用,因为DbUnit基本上是JUnit的扩展。
2)如果是,如何?
答案 0 :(得分:2)
最后我发现了一种将DbUnit与TestNG一起使用的方法!
使用IDatabaseTester的实例,
但另一种解决方法是: 扩展AbstractDatabaseTester并实现getConnection并覆盖必要的函数。 但重要的是在测试之前和之后调用onSetup()和onTeardown()。
希望这会有所帮助......
答案 1 :(得分:1)
不确定您要做什么,但也许Unitils会有所帮助。它就像dbunit扩展,但不限于此,并支持与TestNg的集成(通过为您的测试用例扩展UnitilsTestNG类)。
答案 2 :(得分:0)
这是执行所需功能的简单类。
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
}
}