本文介绍了如何对Spring Boot MongoRepository进行单元测试?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
在我的Spring Boot Web应用程序中,我使用MongoDB存储数据。在应用程序中,我使用扩展MongoRepository
的接口访问数据库。
- 启动MongoDB的嵌入式/内存实例
- 从JSON或XML插入测试数据
- 使用自动连接的存储库对测试数据执行查询
我试过使用Embedded MongoDB,但我想不出如何从文件中插入测试数据。我也尝试过使用NoSQLUnit,但SpringApplicationConfiguration与单元测试配置冲突,导致用于读写的数据库不同。
推荐答案
2018和Spring Boot2的更新。首先,您可以按照documentation与嵌入式数据库进行纯数据集成测试。它使用DataMongoTest
注释。这只配置使MongoDB测试成为可能的必要依赖项。
如果要进行完全集成测试,请添加AutoConfigureDataMongo
注释:
@RunWith(SpringRunner.class)
@SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.DEFINED_PORT)
@AutoConfigureDataMongo
public class PriceApiControllerIT {
您的pom.xml
中应具有的依赖项:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.1.RELEASE</version>
</parent>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>de.flapdoodle.embed</groupId>
<artifactId>de.flapdoodle.embed.mongo</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
这篇关于如何对Spring Boot MongoRepository进行单元测试?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!