Spring Boot で MongoRepository のテストを作成しましたが、テストは正常に動作します。唯一の問題は、テストが終了したときに、テストによってデータベースが変更されないように、ロールバックが必要なことです。
// 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!