Java 以编程方式加载数据库设置&;与DBUnit中的预期数据库进行比较

Java 以编程方式加载数据库设置&;与DBUnit中的预期数据库进行比较,java,unit-testing,junit,dbunit,spring-test,Java,Unit Testing,Junit,Dbunit,Spring Test,我对我的测试方法的注释如下: @Test @DatabaseSetup("/default_database_data.xml") @ExpectedDatabase(value = "/expected_database_1.xml", assertionMode = NON_STRICT) 是否可以手动执行@DatabaseSetup和@ExpectedDatabase执行的操作: @Test public void test(){ // DBUnit.setup("/default_

我对我的测试方法的注释如下:

@Test
@DatabaseSetup("/default_database_data.xml")
@ExpectedDatabase(value = "/expected_database_1.xml", assertionMode = NON_STRICT)
是否可以手动执行
@DatabaseSetup
@ExpectedDatabase
执行的操作:

@Test
public void test(){
  // DBUnit.setup("/default_database_data.xml");
  dao.insert(...);
  // DBUnit.expected("/expected_database_1.xml");
}

我编写了语法,只是为了让您了解我需要什么:在一个单元测试中执行两个设置和断言。

两件可能有效的事情,请检查此链接

还有这个注释:

  @DirtiesContext(classMode=ClassMode.AFTER_EACH_TEST_METHOD)

为什么要进行两次设置?你能解释一下吗?DBUnit不会清除自动生成的ID(序列)。在我的预期集合中,我有带有这些ID的表(以及指向这些ID的外键)。如果未清除序列,则测试顺序决定行的ID。因此,要么我命令测试,要么清除序列,要么测试外键。。我不知道任何这样的解决方案,所以我计划进行一个测试,该测试调用包含实际..的非测试方法。。测试代码。在两次调用之间,我需要重置和加载DB。两件可能有效的事情,请检查此链接。还有这个注释:@DirtiesContext(classMode=classMode.AFTER\u每个\u测试\u方法)在类上。
@DitirtiesContext
似乎使我的测试按顺序运行。。这是真的吗?不是真的。我只是清除应用程序上下文。阅读相关文档。我只需要确认这是否真的有效。。到处都是。我接受:)我不能证实这一点,但总体来说似乎是可行的。这不是一个好的解决方案,因此,亲爱的访客,使用时请注意:(