DbUnit框架测试DAO层
问题描述:
通常我们从setup()提供输入文件来插入数据,这样每次测试都会插入数据,最后在测试后清除它。DbUnit框架测试DAO层
但是,这些数据适用于所有测试,并且如果测试次数更多,它会变得非常多。 因此,如果有任何方法可以给出测试特定输入(xml)文件,以便该特定文件将由setUp()中的DbUnit插入,因此开销较小。
任何建议表示赞赏。 谢谢。
答
我注意到你标记了Spring,你可以写一个org.springframework.test.context.TestExecutionListener
做你需要的(扩展AbstractTestExecutionListener
)。
在beforeTestMethod(...)
中使用DbUnit加载数据。使用TestContext检索有关testClass或testMethod的信息,并根据要加载的数据集来决定。例如,您可以创建一个新的注释来指定为测试方法加载哪个数据集。
卸载afterTestMethod(...)
中的数据集(如果不使用作为事务的一部分插入的事务测试和数据)。
注册您TestExecutionListener
使用@TestExecutionListeners
注释 (重要TransactionalTestExecutionListener
后指定它,如果你正在使用它,并希望该数据集的插入,形成交易的一部分)。
希望这会有所帮助。