使用几种REQUIRES_NEW方法测试Spring系统

时间:2013-07-29 09:04:50

标签: database spring testing

我正在为一个系统编写测试,其中包含几个使用REQUIRES_NEW注释的方法。如何编写测试并自动清理?目前,我必须手动清理,因为在测试结束之前已经提交了几个事务。

在测试之前是否有用于拍摄数据库快照的库,并在测试后应用该快照?

谢谢!

1 个答案:

答案 0 :(得分:0)

查看spring TestContext framework

框架将为每个测试创建并回滚事务

- 编辑 -

我还没有找到解决方案,也许是 PROPAGATION_REQUIRES_NEW 打算用于:启动一个完全独立的事务,并且可以使用外部事务独立提交或回滚。

可能的解决方法可能是在@BeforeTransaction和@AfterTransaction

中的测试之间重新填充数据库

您的参考资料有open ticket

- 编辑 -

拍摄db的快照非常复杂,取决于底层数据库。我还没有找到一个现成的库或工具来满足您的需求。即使有任何东西,也可能太重,只能用于测试目的。

spring提供Embedded database support,但它仅限于嵌入式数据库,如h2,并且每次创建一个全新的数据库并在测试后将其销毁

所以,我想你必须自己恢复测试期间更新的表/行。