通常我们从setup()提供输入文件以插入数据,因此每次测试都会插入数据,最后在测试后将其清除。
但是这些数据适用于所有测试,如果测试次数更多,则会产生很大的开销。 因此,如果有任何方法可以提供测试特定输入(xml)文件,以便DbUnit从setUp()插入该特定文件,那么开销就会减少。
任何建议表示赞赏。 谢谢。
答案 0 :(得分:1)
我注意到你标记了Spring,你可以写一个org.springframework.test.context.TestExecutionListener
来做你需要的事情(扩展AbstractTestExecutionListener
)。
在beforeTestMethod(...)
中使用DbUnit加载数据。使用TestContext检索有关testClass或testMethod的信息,并根据要加载的数据集来决定。例如,您可以创建一个新注释来指定要为测试方法加载的数据集。
在afterTestMethod(...)
中卸载数据集(如果不使用事务测试和作为事务的一部分插入的数据)。
使用TestExecutionListener
注释注册@TestExecutionListeners
(如果您正在使用TransactionalTestExecutionListener
并希望数据集插入构成交易的一部分,则在{{1}}之后指定它很重要。)
希望这有帮助。