Ваш TestEntityManager
подключен автоматически, но вы выполняете вызов persist
вне транзакции.
Вы можете автоматически подключать TransactionTemplate
:
@Autowired
private TransactionTemplate transactionTemplate;
и выполнять взаимодействие с БД, используя метод execute
:
User savedUser = transactionTemplate.execute((conn) -> {
return testEntityManager.persist(new User("foo"));
});
Также вы должны знать, что сейчас Вы несете ответственность за очистку тестовой БД после выполнения тестов (что может быть трудно поддерживать по мере увеличения logi c):
@BeforeEach // just to be sure
@AfterEach
public void cleanup() {
userRepository.deleteAll();
}