`

Junit中利用Embedded Mongo(Fongo)

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

2019-8-8
采用Fakemongo时,支持的版本是spring boot2.0.2.release,对应的mongo版本是3.6.3,后来把spring boot升级到2.1.5.release,对应的版本是mongo-java-driver-3.8.2.jar,执行时报错 java.lang.NoClassDefFoundError: com/mongodb/OperationExecutor,并且从fakemongo的github更新来看,这个项目已经没有人维护更新了。所以转换成了mongo-java-server,对新版本也能支持了mongo-java-server
0
0
分享到:
评论

相关推荐

    jUnitTest:jUnit和伪造的mongo和gradle

    jUnit和伪造的mongo和gradle 构建此项目是为了创建演示以供将来的项目使用。 ----should have eclipse gradle pulgin---- import Gradle Project --> 'Build Model' --> select project --> finish

    基于Junit的ATM测试

    【基于Junit的ATM测试】是针对自动取款机(ATM)系统进行的一种软件测试方法,它利用Java编程语言以及JUnit测试框架来验证ATM系统的功能正确性。JUnit是一个广泛使用的Java单元测试框架,它允许开发者编写可重复运行...

    eclipse下利用ant、junit进行自动化测试例子源码

    本示例主要展示了如何在Eclipse集成开发环境中利用ANT构建工具和JUnit单元测试框架进行自动化测试。以下是关于这些知识点的详细说明: 1. **Eclipse IDE**:Eclipse是一款流行的开源Java开发环境,支持多种语言的...

    ANT&JUNIT中文手册

    在实际项目中,开发者通常会利用Ant的classpath元素指定JUnit库的位置,然后使用junit任务来运行测试。这样,每次构建时,Ant都会自动执行所有的测试,如果有任何失败,构建就会失败,提醒开发者及时修复问题。 ...

    使用junit中例子

    使用junit中例子, junit demo, junit 教程

    junit-4.11-API文档-中文版.zip

    赠送jar包:junit-4.11.jar; 赠送原API文档:junit-4.11-javadoc.jar; 赠送源代码:junit-4.11-sources.jar; 赠送Maven依赖信息文件:...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    Junit 5中文帮助指南

    Junit 5中文帮助指南,JUnit 5跟以前的JUnit版本不一样,它由几大不同的模块组成,这些模块分别来自三个不同的子项目。 JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage JUnit Platform是在JVM上 启动...

    在Eclipse中使用JUnit4进行单元测试

    在Eclipse中使用JUnit4进行单元测试是一种常见的Java开发实践,它可以帮助开发者确保代码的正确性和稳定性。单元测试是软件开发中的重要环节,通过编写针对代码各个独立模块的测试用例,可以验证代码功能是否按预期...

    JUnit4利用反射机制测试类的私有成员

    在Java编程中,单元测试是确保代码质量的重要环节。JUnit4作为Java领域广泛使用的单元测试框架,提供了丰富的功能来帮助开发者测试代码。然而,对于类的私有成员(包括私有方法和私有属性),由于其封装性,通常不易...

    Myeclipse中的JUnit测试详细

    在Java开发环境中,MyEclipse是一款非常流行的集成开发环境(IDE),它提供了丰富的功能,包括对JUnit测试的强大支持。JUnit是Java编程语言中用于单元测试的开源框架,它使得开发者可以方便地编写和运行测试用例,...

    junit5.rar包含JUnit Platform + JUnit Jupiter + JUnit Vintage依赖jar包

    JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage,包含依赖包:junit-jupiter-5.5.1.jar,junit-jupiter-engine-5.5.1.jar,junit-jupiter-params-5.5.1.jar,junit-platform-launcher-1.5.1.jar,junit-...

    JUnit in Action 3nd Edition

    JUnit在软件测试领域中扮演着重要的角色,帮助开发者编写高质量的代码。下面是关于JUnit的重要知识点: JUnit的历史 JUnit的历史可以追溯到1997年,当时Kent Beck和Eric Gamma创立了JUnit。JUnit的第一个版本是...

    junit5.jar

    在进行实际测试时,可以创建一个继承自`org.junit.jupiter.api.TestInstance`的测试类,利用JUnit Jupiter提供的各种注解编写测试用例。例如: ```java import org.junit.jupiter.api.DisplayName; import org....

    JUnit in Action(JUnit经典书籍)中文+英文

    在书中,作者首先介绍了JUnit的基本概念,包括如何创建和运行简单的测试用例,以及如何利用注解(Annotation)来简化测试代码。JUnit的核心类库如`@Test`、`@Before`、`@After`等注解的使用方法被逐一讲解,让读者...

    junit高效单元测试

    这个好用,junit,junit,junit

    Junit5.7.2离线jar

    在Java项目中,引入JUnit5.7.2离线jar后,我们可以利用其强大的功能来编写单元测试。例如,@Test注解标记测试方法,这些方法会在测试执行时被调用。我们还可以使用@DisplayName指定测试方法的友好名称,便于阅读测试...

    junit4学习文档

    JUnit4 是 JUnit 测试框架的一个重大更新版本,它充分利用了 Java 5 的注解(Annotation)特性来简化测试用例的编写过程。注解是一种元数据,用于描述程序中的元素如类、方法或变量的作用。与传统的关键字(如 ...

    Junit5依赖整合包

    Junit5是Java开发中最常用的单元测试框架之一,它的出现为开发者提供了更加高效、灵活的测试体验。相较于之前的版本,Junit5引入了许多新的特性和改进,使得测试代码的编写和维护变得更加简单。本整合包包含了Junit5...

    junit工具jar包

    当您下载并导入这个“junit4.8.1”jar包到项目中时,您就能利用JUnit的功能来编写和运行测试代码。 首先,关于如何使用JUnit,你需要将jar包添加到项目的类路径中。在IDE如Eclipse或IntelliJ IDEA中,可以直接将jar...

    junit的jar包

    Files contained in junit4-4.8.2.jar: LICENSE.txt META-INF/MANIFEST.MF junit.extensions.ActiveTestSuite.class junit.extensions.RepeatedTest.class junit.extensions.TestDecorator.class junit.extensions...

Global site tag (gtag.js) - Google Analytics