Java SpringDataMongoDB:使用Fongo进行单元测试

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

我正在尝试使用Junit和Fongo测试mongo文档持久器。我能够将MongoTemplate注入到要测试的类中。但是调用mongotemplate.getCollection(“testCollection”)返回null。我不确定如何为单元测试加载集合

待测类别:-

@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类似。