用于测试DAO层的DbUnit框架

时间:2011-08-05 10:04:51

标签: unit-testing spring jpa dbunit

通常我们从setup()提供输入文件以插入数据,因此每次测试都会插入数据,最后在测试后将其清除。

但是这些数据适用于所有测试,如果测试次数更多,则会产生很大的开销。 因此,如果有任何方法可以提供测试特定输入(xml)文件,以便DbUnit从setUp()插入该特定文件,那么开销就会减少。

任何建议表示赞赏。 谢谢。

1 个答案:

答案 0 :(得分:1)

我注意到你标记了Spring,你可以写一个org.springframework.test.context.TestExecutionListener来做你需要的事情(扩展AbstractTestExecutionListener)。

beforeTestMethod(...)中使用DbUnit加载数据。使用TestContext检索有关testClass或testMethod的信息,并根据要加载的数据集来决定。例如,您可以创建一个新注释来指定要为测试方法加载的数据集。

afterTestMethod(...)中卸载数据集(如果不使用事务测试和作为事务的一部分插入的数据)。

使用TestExecutionListener注释注册@TestExecutionListeners (如果您正在使用TransactionalTestExecutionListener并希望数据集插入构成交易的一部分,则在{{1}}之后指定它很重要。)

希望这有帮助。