我有Spring Data Rest的Spring Boot应用程序,我在集成测试中使用@WebIntegrationTest
以及TestRestTemplate
。用于测试的基类看起来是这样的:Spring Boot @WebIntegrationTest和TestRestTemplate - 是否可以回滚测试事务?
@RunWith(SpringJUnit4ClassRunner.class)
@ActiveProfiles(profiles = "test")
@SpringApplicationConfiguration(classes = Application.class)
@Transactional
@TransactionConfiguration
@WebIntegrationTest("server.port: 0")
public abstract class IntegrationTest {
...
}
我通过使用TestRestTemplate
执行POST
请求的资源测试一个实体的创建。问题在于,即使认为我的测试配置为事务性的,在数据库上坚持实体的事务也不会回滚,因此实体在测试后仍保留在数据库中。我有种理解,因为在测试中回滚的事务与持久化实体的事务不同。
现在我的问题是,是否有任何方式回滚在测试方法中通过RestTemplate
发出的请求触发的事务?
我会说没有,唯一的办法就是手动删除添加的条目(春季TestContext框架作者)... –
FYI:您可以安全地删除'@ TransactionConfiguration'声明:它在这里没有任何作用。 –