Junit中利用Embedded Mongo(Fongo)

MongoDB 是一个基于分布式文件存储的NoSQL数据库,在应用开发中使用非常普遍,因为mongo是由 C++ 语言编写,真实的mongodb只能以server模式独立运行,这样就使得基于mongo应用的junit无法真正的独立运行,除非我们将所有mongo相关的操作都mock,本文将介绍一种为了针对mongo应用的junit而独立开发的内存库fakemongo,简称fongo,官网地址[url=https://github.com/fakemongo/fongo] fongo [/url]。
在spring boot的官方文档中,Embedded Mongo采用的是de.flapdoodle.embed:de.flapdoodle.embed.mongo,地址[url=https://github.com/flapdoodle-oss/de.flapdoodle.embed.mongo]embed.mongo[/url]。其实现方式是在应用程序启动时,根据具体依赖的de.flapdoodle.embed.mongo版本,以及操作系统的版本,从mongo官方下载网站上下载相应的mongo版本,并启动,在应用程序结束时停止mongo并清除数据。因为我们的开发环境不能连上互联网,想采用这个方式必须把不同平台的mongo都下载好,放到我们的局域网,还必须在局域网里面搭建一个http服务,并重写flapdoodle.embed.mongo默认的下载地址,比较麻烦,并且我们应用只是使用了mongo基本的存储查询功能,不依赖于MapReduce等高级特性,经过对比我们采用了fongo作为我们junit时使用的mongo库。
fakemongo目的就是为了简化mongo应用的junit,使用java完全重写,因而可以真正的运行于内存中。具体示例参考 [url=https://github.com/lordofthejars/nosql-unit/tree/master/nosqlunit-demo/src/main/java/com/lordofthejars/nosqlunit/demo/mongodb]nosqlunit-mongo[/url]
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值