43.3.13 Auto-configured Data MongoDB Tests
43.3.13 自动配置的Data MongoDB测试
你可以使用@DataMongoTest
测试MongoDB应用。默认的,它将会配置一个内存MongoDB(如果可用),配置一个@MongoTemplate
,扫描@Document
类和配置Spring Data MongoDB仓库。常规的@Component
bean将不会加载进ApplicationContext
。(在Spring Boot里使用MongoDB的更多信息,请查看章节 30.2 MongoDB。)
下面的例子展示了使用中的@DataMongoTest
注解:
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.data.mongo.DataMongoTest;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@DataMongoTest
public class ExampleDataMongoTests {
@Autowired
private MongoTemplate mongoTemplate;
//
}
由于内存MongoDB快,而且不需要任何开发者安装,它总体上在测试中工作得很好。但是,如果你更喜欢在一个非真实的MongoDB服务器上运行你的测试,你应当排除内嵌的MongoDB自动配置。如下所示:
import org.junit.runner.RunWith;
import org.springframework.boot.autoconfigure.mongo.embedded.EmbeddedMongoAutoConfiguration;
import org.springframework.boot.test.autoconfigure.data.mongo.DataMongoTest;
import org.springframework.test.context.junit4.SpringRunner;
@RunWith(SpringRunner.class)
@DataMongoTest(excludeAutoConfiguration = EmbeddedMongoAutoConfiguration.class)
public class ExampleDataMongoNonEmbeddedTests {
}
在附录中可以查看@DataMongoTest
开启的自动配置列表。