У меня нет проблем с тестированием моего DAO и сервисов, но когда я тестирую INSERT
или UPDATE
, я хочу чтобы откатить транзакцию и не повлиять на мою базу данных.
Я использую @Transactional
внутри своих служб для управления транзакциями. Я хочу знать,
Если я удалю @TransactionConfiguration (defaultRollback = true)
, тогда тест пройден, но новая запись будет вставлена в базу данных.
@Test
@Transactional
@Rollback(true)
public void testInsert(){
long id = myService.addPerson( "JUNIT" );
assertNotNull(id);
if( id < 1 ){
fail();
}
}
Теперь можно пройти тест правильно, но откат игнорируется и запись вставляется в база данных.
Я, очевидно, аннотировал метод addPerson ()
внутри myService с помощью @Transactional
.
Почему откат игнорируется?