Java SpringDataMongoDB:使用Fongo进行单元测试
我正在尝试使用Junit和Fongo测试mongo文档持久器。我能够将MongoTemplate注入到要测试的类中。但是调用mongotemplate.getCollection(“testCollection”)返回null。我不确定如何为单元测试加载集合 待测类别:-Java SpringDataMongoDB:使用Fongo进行单元测试,java,spring,mongodb,unit-testing,junit,Java,Spring,Mongodb,Unit Testing,Junit,我正在尝试使用Junit和Fongo测试mongo文档持久器。我能够将MongoTemplate注入到要测试的类中。但是调用mongotemplate.getCollection(“testCollection”)返回null。我不确定如何为单元测试加载集合 待测类别:- @Component @Doc public class MongoPersisterBean { @Autowired protected MongoTemplate template; @Ove
@Component
@Doc
public class MongoPersisterBean {
@Autowired
protected MongoTemplate template;
@Override
public boolean save(String collectionName, String json) {
template.getCollection(collectionName).save(json);
return true;
}
}
初中班
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration
public class MongoPersisterBeanTest {
@InjectMocks
private DocumentPersisterBean bean = new DocumentPersisterBean();
@Mock
@Autowired
private MongoTemplate mongoTemplate;
@Before
public void setUp() throws Exception {
MockitoAnnotations.initMocks(this);
}
@Test
public void testSave() {
System.out.println("Template "+mongoTemplate);
System.out.println("Collection ===> "+mongoTemplate.getCollection("testCollection"));
}
@Configuration
static class MongoTestConfiguration {
@Bean
public Mongo mongo() {
// Configure a Fongo instance
return new Fongo("mongo-test").getMongo();
}
@Bean
public MongoTemplate mongoTemplate() {
return new MongoTemplate(mongo(), "testDB");
}
}
我建议您试试NoSqlUnit,它提供了注释库支持,支持如何将json文件指定为要加载到嵌入式mongo服务器上的初始数据。它的方法与DBUnit类似,我建议您尝试使用NoSqlUnit,它提供了注释库支持,支持如何将json文件指定为要加载到嵌入式mongo服务器上的初始数据。它的方法与DBUnit类似。