执行功能测试Spring Rest Interface时的事务管理

时间:2014-02-19 17:39:20

标签: spring rest functional-testing

我正在尝试编写功能测试套件。该测试利用一系列Rest调用来执行工作流程(测试是黑盒测试,使用其余界面。)。其余的应用程序是Spring 3,它使用Spring的事务管理(DataSourceTransactionManager)。为了避免个别安装和拆卸方法,我想使回滚able.This是完成交易的使用@TransactionConfiguration做单元\集成测试时(defaultRollback =真),但我不知道一个直接的方式这样做,同时进行集成测试(因为它们是单独的休息呼叫)。

正在测试的应用程序不是单线程的,并且多个并发测试套件可能在同一个数据库实例\应用程序上同时运行。

我的初步分析使我相信我应该强制spring为测试套件中的所有方法使用相同的可回滚事务。(比如使用Factory方法,该方法根据唯一标识符返回Transaction。传递一个唯一的请求参数并使用AOP以某种方式为此线程注入事务)

你们有没有做过类似的事情。我真的很感激一些想法。

谢谢。

1 个答案:

答案 0 :(得分:0)

好问题,

我打算在我的Junit测试中使用交易

如果以下情况适合您,请使用

@Test
@Transactional
@Rollback(true)

我需要一段时间才能在我的项目中实现这一点,但希望,在我需要之前,这将对您有所帮助。

我读到的另一件事是程序是多线程的。

您是否不希望使用弹簧提供的隔离级别?但我认为开发人员应该照顾好这一点。