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

执行Spring Rest接口功能测试时的事务管理,spring,rest,functional-testing,Spring,Rest,Functional Testing,我正在尝试编写一个功能测试套件。测试利用一组Rest调用来执行工作流(测试是黑盒测试,使用Rest接口)。rest下的应用程序是Spring 3,使用Spring的事务管理(DataSourceTransactionManager)。为了避免单独的设置和拆卸方法,我正在考虑使事务可回滚。这是通过在进行单元\集成测试时使用@TransactionConfiguration(defaultRollback=true)来实现的,但我不知道在执行集成测试时有一种直接的方法(因为它们是单独的rest调用)

我正在尝试编写一个功能测试套件。测试利用一组Rest调用来执行工作流(测试是黑盒测试,使用Rest接口)。rest下的应用程序是Spring 3,使用Spring的事务管理(DataSourceTransactionManager)。为了避免单独的设置和拆卸方法,我正在考虑使事务可回滚。这是通过在进行单元\集成测试时使用@TransactionConfiguration(defaultRollback=true)来实现的,但我不知道在执行集成测试时有一种直接的方法(因为它们是单独的rest调用)

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

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

你们中有人做过类似的事情吗?我非常感谢你们的建议

谢谢。

好问题

我也计划在Junit测试中使用事务

如果以下各项对您有效,请使用

@Test
@Transactional
@Rollback(true)
这将需要一些时间,我来实施这在我的项目,但希望,这将帮助你之前,我需要这个

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

您不希望使用spring提供的隔离级别吗?但我认为应该由开发人员负责