0
我使用Fongo不僅用於單元測試,還用於集成測試,所以我想用一些集合來初始化Fongo,這可能嗎?我可以用fongo使用repository populator bean嗎?
這是我的Java配置(based on Oliver G. answer):
@EnableAutoConfiguration(exclude = {
EmbeddedMongoAutoConfiguration.class,
MongoAutoConfiguration.class,
MongoDataAutoConfiguration.class
})
@Configuration
@ComponentScan(basePackages = { "com.foo" },
excludeFilters = { @ComponentScan.Filter(classes = { SpringBootApplication.class })
})
public class ConfigServerWithFongoConfiguration extends AbstractFongoBaseConfiguration {
private static final Logger log = LoggerFactory.getLogger(ConfigServerWithFongoConfiguration.class);
@Autowired
ResourcePatternResolver resourceResolver;
@Bean
public Jackson2RepositoryPopulatorFactoryBean repositoryPopulator() {
Jackson2RepositoryPopulatorFactoryBean factory = new Jackson2RepositoryPopulatorFactoryBean();
try {
factory.setResources(resourceResolver.getResources("classpath:static/collections/*.json"));
} catch (IOException e) {
log.error("Could not load data", e);
}
return factory;
}
}
當我跑我的IT測試,在登錄出現Reading resource: file *.json
而是因爲他們檢索Fongo數據庫沒有(空)測試失敗。
測試都標註有:
@RunWith(SpringRunner.class)
@SpringBootTest(classes={ConfigServerWithFongoConfiguration.class})
@AutoConfigureMockMvc
@TestPropertySource(properties = {"spring.data.mongodb.database=fake"})
@DirtiesContext(classMode = DirtiesContext.ClassMode.AFTER_CLASS)
你有沒有使用https://github.com/lordofthejars/nosql-unit。有了這個,使用示例數據初始化數據庫要簡單得多。這裏也是一個例子https://ivanursul.com/spring-data-mongo-testing-using-in-memory-db/ – pvpkiran