스프링 부트에서 MongoRepository에 대한 테스트를 작성했으며 테스트가 정상적으로 작동합니다. 유일한 문제는 테스트가 끝나면 롤백이 필요하므로 테스트로 인해 데이터베이스가 변경되지 않는다는 것입니다. 스프링 부트 MongoRepository @Rollback for tests
// 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()));
}
}
나는 @Rollback 전에 @Transactional을 추가하는 듯했으나이 오류를 얻을 :
java.lang.illegalstateexception:Failed to retrieve PlatformTransactionManager for @Transactional test for test context
내가 오류를 검색 할 때, 나는 MongoRepository와 코드를 찾을 수 있습니다. 그럼 어떻게 해결할 수 있을까요?
편집 : @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