编程方式加载数据库建立及预计数据库比较DBUnit的
问题描述:
我诠释我的测试方法是这样的:编程方式加载数据库建立及预计数据库比较DBUnit的
@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");
}
我创建了语法,只是为了让你知道我需要什么:在一个单元测试中执行2个设置和断言。
答
+0
我只需要确认,如果这实际上工作..无处不在。我会接受:) – 2013-04-23 09:07:21
+0
我无法证实这一点,但一般似乎工作。这**不是一个好的解决方案**,所以,亲爱的访客,在使用这个时注意:( – 2013-04-29 09:27:26
为什么你会想要做两个设置?你可以解释一下吗? – Eugene 2013-04-23 07:09:25
DBUnit不会清除自动生成的ID(序列)。在我的*预期集*我有表与这些ID(和外键指向这些ID)。如果后缀未被清除,则测试的顺序决定了行的ID。 **所以要么**我要求测试或清除序列或测试外键不同..我不知道任何这样的解决方案,所以我打算有1个测试调用非测试方法包含实际..测试码。在调用之间,我需要重置并加载数据库。 – 2013-04-23 07:50:15
两件事情可能会起作用,请检查此链接。 http://stackoverflow.com/questions/3813684/how-to-revert-the-database-back-to-the-initial-state-using-dbunit。还有这个注解:类中的@DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)。 – Eugene 2013-04-23 07:57:22