2017-06-02 125 views
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) 
+0

你有沒有使用https://github.com/lordofthejars/nosql-unit。有了這個,使用示例數據初始化數據庫要簡單得多。這裏也是一個例子https://ivanursul.com/spring-data-mongo-testing-using-in-memory-db/ – pvpkiran

回答

0

大聲笑,我覺得現在這麼愚蠢。是格式問題。 JSON藏品必須格式化這樣的:

[ 
    {/*doc1*/}, 
    {/*doc2*/}, 
    {/*doc3*/} 
] 

我錯過了[]和逗號分隔的文件。

相關問題