使用mongodb
与Spring数据MongoDB的后端。也使用 Mongo 存储库。
这是我的实际配置:
/** MONGO CLIENT *****************************************************/
@Override
protected String getDatabaseName() {
return db;
}
@Override
public Mongo mongo() throws Exception {
/* I'm so dump to automatize this that I just do it manually */
return new Fongo("meh").getMongo(); //Using it for unit tests
//return new MongoClient(url, port); //Using it for IT
}
@Override
protected Collection<String> getMappingBasePackages() {
return Arrays.asList("com.foo");
}
/** BEANS ************************************************************/
@Bean
public Jackson2RepositoryPopulatorFactoryBean repositoryPopulator() {
Resource foo1 = (Resource) new ClassPathResource("collections/foo1.json");
Resource foo2 = (Resource) new ClassPathResource("collections/foo2.json");
Jackson2RepositoryPopulatorFactoryBean factory = new Jackson2RepositoryPopulatorFactoryBean();
factory.setResources(new Resource[] { foo1, foo2 });
return factory;
}
存储库填充器是我添加的,它给我带来了麻烦。当我编译和测试我的项目时,我得到了DuplicateKeyException
因为我猜存储库填充器触发了不止一次。
这些是我在测试类中使用的注释:
@RunWith(SpringRunner.class)
@SpringBootTest
@AutoConfigureMockMvc
我的应用程序配置好了吗?避免存储库填充器多次触发的合理解决方案是什么?
基于本指南的解决方案(西班牙语,抱歉):https : //www.paradigmadigital.com/dev/tests-integrados-spring-boot-fongo
test/
只需将指南中的示例代码(也使用 MongoConfiguration.java,我的实际配置是错误的)作为基础,您会没事的。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句