有什么方法可以回滚通过
RestTemplate测试方法发出的请求触发的交易?
不能。无法回滚已部署的应用程序管理的事务。
当您使用
@WebIntegrationTest和注释测试类时
@SpringApplicationConfiguration,Spring
Boot将启动一个嵌入式Servlet容器并在其中部署您的应用程序。因此,从这个意义上讲,您的测试和应用程序在两个不同的进程中运行。
在 springTestContext框架
只管理测试管理的事务。因此,
@Transactional您的测试类中的存在只会影响本地测试管理的事务,而不会影响处于不同过程中的事务。
正如其他人已经提到的那样,一种解决方法是在测试完成后重置数据库的状态。为此,您有几种选择。有关详细信息,请参考参考手册的“
执行SQL脚本”部分。
问候,
Sam( Spring TestContext framework的作者 )



