我在Spring Boot中爲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代碼。那麼,我該如何解決這個問題?
編輯:據我所知
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!
通常在執行測試方法後,Spring會回滾每個事務。在你的類上添加'@ Transactional'並刪除'@ Rollback'。這應該工作。 – Patrick
我仍然得到相同的錯誤:未能檢索.... – kalahari
嘗試使用'@Transactional(「PlatformTransactionManager」)' – Patrick