Java 在JUnit测试之后清理数据库。
我有一个将行插入数据库的单元测试,我希望DBUnit在之后自动清理这些行(DBUnit最初不会插入这些行,这完全是被测试代码的责任)Java 在JUnit测试之后清理数据库。,java,junit,dbunit,Java,Junit,Dbunit,我有一个将行插入数据库的单元测试,我希望DBUnit在之后自动清理这些行(DBUnit最初不会插入这些行,这完全是被测试代码的责任) 谢谢。将插入/更新/删除查询设置为事务性查询,并在测试完成后回滚。将插入/更新/删除查询设置为事务性查询,并在测试完成后回滚。如果使用JUnit4,然后,您可以使用@AfterClass注释声明一个函数:它将在所有测试之后执行,您可以删除表中添加的所有行 在JUnit3中,您没有任何等效项,但可以重写tearDown()方法,该方法将在每次测试后执行(相当于JUn
谢谢。将插入/更新/删除查询设置为事务性查询,并在测试完成后回滚。将插入/更新/删除查询设置为事务性查询,并在测试完成后回滚。如果使用JUnit4,然后,您可以使用
@AfterClass
注释声明一个函数:它将在所有测试之后执行,您可以删除表中添加的所有行
在JUnit3中,您没有任何等效项,但可以重写
tearDown()
方法,该方法将在每次测试后执行(相当于JUnit4中注释之后的。如果使用JUnit4,然后,您可以使用@AfterClass
注释声明一个函数:它将在所有测试之后执行,您可以删除表中添加的所有行
在JUnit3中,没有任何等效的方法,但是可以重写tearDown()
方法,该方法将在每次测试后执行(相当于JUnit4中@after
注释)。如果在Before方法中分配外部资源(文件/DB),则需要在测试运行后释放它们。用@After注释公共void方法会导致该方法在测试方法之后运行。即使Before或Test方法抛出异常,所有@After方法都保证运行。超类中声明的@After方法将在当前类的方法之后运行
示例将文件显示为资源,但您可以将其用于数据库清理
public class Example {
File output;
@Before public void createOutputFile() {
output= new File(...);
}
@Test public void something() {
...
}
@After public void deleteOutputFile() {
output.delete();
}
}
如果在Before方法中分配外部资源(file/DB),则需要在测试运行后释放它们。用@After注释公共void方法会导致该方法在测试方法之后运行。即使Before或Test方法抛出异常,所有@After方法都保证运行。超类中声明的@After方法将在当前类的方法之后运行
示例将文件显示为资源,但您可以将其用于数据库清理
public class Example {
File output;
@Before public void createOutputFile() {
output= new File(...);
}
@Test public void something() {
...
}
@After public void deleteOutputFile() {
output.delete();
}
}
感谢解决方案,但提交逻辑存在于包含可测试代码的函数中,此外,我使用DB单元模拟DB,因此我无法控制测试中的提交。感谢解决方案,但提交逻辑存在于包含可测试代码的函数中,此外,我使用DB单元模拟DB,因此我无法控制测试中的提交函数,现在我如何在@After???@UdayReddy中使用DB unit删除插入的条目?编写一个delete查询并在After函数中执行语句。因此,在代码中@Juned让我们假设我在something()中对数据库进行了添加操作函数,现在我如何在@After???@UdayReddy中使用DB unit删除插入的条目?请编写一个delete查询并在After函数中执行该语句。