Я написал тест для MongoRepository в Spring Boot, и тест отлично работает. Единственная проблема заключается в том, что когда тест закончен, я хочу откат, чтобы в базе данных не было изменений, вызванных тестом.Весенняя загрузка MongoRepository @Rollback для тестов
// package...
// imports...
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = MetistrafficApplication.class)
@Rollback(true)
public class AppRepositoryTests {
@Autowired
private AppRepository appRepository;
@Test
public void insertTest() {
App app = new App("test");
App appInserted = appRepository.save(app);
assertThat(appInserted.getName(), equalTo(app.getName()));
}
}
Я поставил @Transactional перед тем @Rollback, но получаю эту ошибку:
java.lang.illegalstateexception:Failed to retrieve PlatformTransactionManager for @Transactional test for test context
Когда я искал ошибки, я не мог найти любой код с MongoRepository. Итак, как я могу это решить?
EDIT: После добавления @Transactional("PlatformTransactionManager")
, ошибка я получаю изменен так:
org.springframework.beans.factory.NoSuchBeanDefinitionException: No bean named 'PlatformTransactionManager' is defined: No matching PlatformTransactionManager bean found for qualifier 'PlatformTransactionManager' - neither qualifier match nor bean name match!
Обычно весенний откат каждой транзакции после выполнения тестового метода. Добавьте '@ Transactional' в свой класс и удалите' @ Rollback'. Это должно сработать. – Patrick
Я по-прежнему получаю ту же ошибку: не удалось получить .... – kalahari
попробуйте использовать '@Transactional (« PlatformTransactionManager »)' – Patrick