Ho un'applicazione Spring Boot con Spring Data Rest e io uso @WebIntegrationTest
insieme allo TestRestTemplate
nei test di integrazione. La classe base per i test simile a questa:Spring Boot @WebIntegrationTest e TestRestTemplate - È possibile eseguire il rollback delle transazioni di prova?
@RunWith(SpringJUnit4ClassRunner.class)
@ActiveProfiles(profiles = "test")
@SpringApplicationConfiguration(classes = Application.class)
@Transactional
@TransactionConfiguration
@WebIntegrationTest("server.port: 0")
public abstract class IntegrationTest {
...
}
stavo testando la creazione di un'entità utilizzando il TestRestTemplate
per eseguire una richiesta POST
a una risorsa. Il problema è che la transazione che persiste sull'entità sul database non viene ripristinata anche se i miei test sono configurati come transazionali, quindi l'entità rimane sul database dopo il test. In un certo senso lo capisco perché la transazione che viene sottoposta a rollback nel test non è la stessa che persiste nell'entità.
Ora la mia domanda è: esiste un modo per ripristinare le transazioni attivate dalle richieste effettuate tramite RestTemplate
in un metodo di prova?
Direi di no, l'unico modo sarebbe quello di eliminare manualmente le voci aggiunte ... –
FYI: è possibile eliminare la dichiarazione '@ TransactionConfiguration': qui ha effetto zero. –