Spring Boot @WebIntegrationTest and TestRestTemplate - Is it possible to rollback test transactions?
is there any way of rolling back the transactions triggered by the requests made through the
RestTemplate
in a test method?
No. It is not possible to roll back the transactions managed by your deployed application.
When you annotate your test class with @WebIntegrationTest
and @SpringApplicationConfiguration
, Spring Boot will launch an embedded Servlet container and deploy your application in it. So in that sense, your test and application are running in two different processes.
The Spring TestContext Framework only manages Test-managed transactions. Thus, the presence of @Transactional
on your test class only influences local test-managed transactions, not those in a different process.
As someone else already mentioned, a work-around would be to reset the state of the database once your test has completed. For this you have several options. Consult the Executing SQL scripts section of the reference manual for details.
Regards,
Sam (author of the Spring TestContext Framework)