springboot~基于单元测试的mongodb
添加对应版本的包
testCompile('de.flapdoodle.embed:de.flapdoodle.embed.mongo:1.46.0')
在测试之前,它会根据你的操作系统去下载当前的mongodb,然后在宿主机上去跑它,可能第一次会比较慢 !
添加测试脚手架类
package com.example.springDemo; import com.mongodb.DB; import com.mongodb.MongoClient; import de.flapdoodle.embed.mongo.MongodExecutable; import de.flapdoodle.embed.mongo.MongodProcess; import de.flapdoodle.embed.mongo.MongodStarter; import de.flapdoodle.embed.mongo.config.MongodConfigBuilder; import de.flapdoodle.embed.mongo.config.Net; import de.flapdoodle.embed.mongo.distribution.Version; import de.flapdoodle.embed.process.runtime.Network; import org.junit.After; import org.junit.Before; public class MongodbBaseTest { private static final MongodStarter starter = MongodStarter.getDefaultInstance(); protected MongoClient mongo; protected DB db; private MongodExecutable mongodExecutable; private MongodProcess mongod; @Before public void setUp() throws Exception { mongodExecutable = starter.prepare(new MongodConfigBuilder() .version(Version.Main.PRODUCTION) .net(new Net(12345, Network.localhostIsIPv6())).build()); mongod = mongodExecutable.start(); mongo = new MongoClient("localhost", 12345); db = mongo.getDB("embedded-mongo"); } @After public void tearDown() throws Exception { mongod.stop(); mongodExecutable.stop(); } }
添加测试DEMO类
package com.example.springDemo; import com.mongodb.BasicDBObject; import com.mongodb.BasicDBObjectBuilder; import com.mongodb.DBCollection; import com.mongodb.DBObject; import org.junit.Before; import org.junit.Test; import static org.junit.Assert.assertThat; import static org.hamcrest.CoreMatchers.is; public class UserTest extends MongodbBaseTest { private DBCollection users; @Override @Before public void setUp() throws Exception { super.setUp(); users = db.getCollection("users"); } @Test public void should_insert_and_get_user() { final DBObject userDocument = new BasicDBObjectBuilder() .add("name", "lind") .get(); users.insert(userDocument); final DBObject userDocumentFromDb = users.findOne(new BasicDBObject("_id", userDocument.get("_id"))); assertThat(userDocumentFromDb.get("name"), is("lind")); } }
测试如果通过,就出现pass 1的绿色标志
感谢各位阅读!
再次提醒,在测试之前,它会根据你的操作系统去下载当前的mongodb,然后在宿主机上去跑它,可能第一次会比较慢 !
合集:
springboot(1)
分类:
Java
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 记一次.NET内存居高不下排查解决与启示
2017-04-11 基础才是重中之重~Dictionary<K,V>里V的设计决定的性能
2015-04-11 MongoDB学习笔记~为IMongoRepository接口添加分页取集合的方法
2014-04-11 MVVM架构~knockoutjs系列之验证信息自定义输出