私はSpring Bootで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を持つ任意のコードを見つけることができませんでした。ですから、どうすればこの問題を解決できますか?
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