我有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'聲明:它在這裏沒有任何作用。 –