我可以将存储库填充器 bean 与 fongo 一起使用吗?
Can I use repository populator bean with fongo?
我不仅将 Fongo 用于单元测试,还用于集成测试,所以我想用一些集合来初始化 Fongo,这可能吗?
这是我的 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)
哈哈,我现在觉得自己好傻。是格式问题。 JSON 集合的格式必须如下所示:
[
{/*doc1*/},
{/*doc2*/},
{/*doc3*/}
]
我缺少 []
和逗号分隔的文件。
我不仅将 Fongo 用于单元测试,还用于集成测试,所以我想用一些集合来初始化 Fongo,这可能吗?
这是我的 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)
哈哈,我现在觉得自己好傻。是格式问题。 JSON 集合的格式必须如下所示:
[
{/*doc1*/},
{/*doc2*/},
{/*doc3*/}
]
我缺少 []
和逗号分隔的文件。