Spring:在线程之间共享事务以进行集成测试

时间:2012-03-01 19:05:49

标签: database multithreading spring integration-testing

我有一个类,它使用ThreadPoolTask​​Executor来分离与数据库交互的任务。我对该任务的集成测试失败,我认为因为它们依赖于通过DataSourceTransactionManager插入的测试数据,并且衍生线程没有从主类中看到事务,因此不会从数据库中检索任何内容。有没有办法让线程看到插入的测试数据,而不必提交事务并在以后删除测试数据?

1 个答案:

答案 0 :(得分:0)

将测试数据插入测试数据库是一种非常常见的模式,测试数据库在测试结束时在finally块中清除。如果你编辑你的问题并提供其他理由来反对该解决方案,我会编辑我的答案。

setup()方法(通常是创建测试数据库表)是另一个很好的地方,可以确保在插入测试数据之前清除新表中之前测试的任何剩余数据。

希望这有帮助。