maven mockito

对于当今的大多数Java项目而言,JUnit本身还远远不够。 您还需要一个模拟库,也许还有其他东西。 在此迷你操作指南中,我介绍了可以在新的Java项目中开始的测试依赖项。

一切都始于JUnit

Maven存储库中的junit组中有两个工件: junitjunit-dep 。 在4.9版之前,后者不包含对内联的Hamcrest的依赖。 今天,我们使用junit依赖关系如下:

<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope>
</dependency>

dependency:tree产生:

[INFO] \- junit:junit:jar:4.11:test
[INFO]    \- org.hamcrest:hamcrest-core:jar:1.3:test

莫基托

我们通常需要的下一个依赖是一个模拟框架。 毫无疑问, Mockito是最受欢迎的游戏之一。 它有两个好处: mockito-allmockito-core 。 第一个是将所有依赖项内联到其中的单个jar,而后者只是Mockito。 建议将mockito-core与JUnit版本4.11一起使用。 因此,我们添加依赖项:

<dependency><groupId>org.mockito</groupId><artifactId>mockito-core</artifactId><version>1.9.5</version><scope>test</scope>
</dependency>

现在, dependency:tree产生:

[INFO] +- junit:junit:jar:4.11:test
[INFO] |  \- org.hamcrest:hamcrest-core:jar:1.3:test
[INFO] \- org.mockito:mockito-core:jar:1.9.5:test
[INFO]    \- org.objenesis:objenesis:jar:1.0:test

Hamcrest

知道mockito-core更适合于声明式依赖性管理,因此,我们将覆盖对Hamcrest和Objenesis的依赖性,如下所示:

<dependency><groupId>org.hamcrest</groupId><artifactId>hamcrest-core</artifactId><version>1.3</version><scope>test</scope>
</dependency><dependency><groupId>org.objenesis</groupId><artifactId>objenesis</artifactId><version>1.3</version><scope>test</scope>
</dependency>

有了这个,我们可以轻松地添加Hamcrest库,该库提供了一个匹配对象库,依赖项:

<dependency><groupId>org.hamcrest</groupId><artifactId>hamcrest-core</artifactId><version>1.3</version><scope>test</scope>
</dependency><dependency><groupId>org.objenesis</groupId><artifactId>objenesis</artifactId><version>1.3</version><scope>test</scope>
</dependency>

并且dependency:tree产生:

[INFO] +- junit:junit:jar:4.11:test
[INFO] +- org.mockito:mockito-core:jar:1.9.5:test
[INFO] +- org.hamcrest:hamcrest-core:jar:1.3:test
[INFO] +- org.hamcrest:hamcrest-library:jar:1.3:test
[INFO] \- org.objenesis:objenesis:jar:1.3:test

断言

AssertJ – Java的流畅断言–提供了一组丰富而直观的强类型断言,可用于单元测试。 AssertJ是FEST Assert的一个分支,我前一段时间在这篇文章中写过。 那依赖性呢? 让我们来看看:

<dependency><groupId>org.assertj</groupId><artifactId>assertj-core</artifactId><version>1.5.0</version><scope>test</scope>
</dependency>

结果如下树:

[INFO] +- junit:junit:jar:4.11:test
[INFO] +- org.mockito:mockito-core:jar:1.9.5:test
[INFO] +- org.assertj:assertj-core:jar:1.5.0:test
[INFO] +- org.hamcrest:hamcrest-core:jar:1.3:test
[INFO] +- org.hamcrest:hamcrest-library:jar:1.3:test
[INFO] \- org.objenesis:objenesis:jar:1.3:test

最终剪辑

完整的Maven结构如下所示:

<!-- Test -->
<dependency><groupId>junit</groupId><artifactId>junit</artifactId><version>4.11</version><scope>test</scope>
</dependency>
<dependency><groupId>org.mockito</groupId><artifactId>mockito-core</artifactId><version>1.9.5</version><scope>test</scope>
</dependency>
<dependency><groupId>org.assertj</groupId><artifactId>assertj-core</artifactId><version>1.5.0</version><scope>test</scope>
</dependency>
<dependency><groupId>org.hamcrest</groupId><artifactId>hamcrest-core</artifactId><version>1.3</version><scope>test</scope>
</dependency>
<dependency><groupId>org.hamcrest</groupId><artifactId>hamcrest-library</artifactId><version>1.3</version><scope>test</scope>
</dependency>
<dependency><groupId>org.objenesis</groupId><artifactId>objenesis</artifactId><version>1.3</version><scope>test</scope>
</dependency>
  • 您可以在GitHub上的unit-testing-demo项目中找到它(链接到pom.xml ),也可以尝试我的spring-mvc-quickstart-archetype (链接到pom.xml )。
参考:操作方法:在Codeleak.pl博客上,从我们的JCG合作伙伴 Rafal Borowiec中测试Maven项目(JUnit,Mockito,Hamcrest,AssertJ)中的依赖项 。

翻译自: https://www.javacodegeeks.com/2014/03/how-to-test-dependencies-in-a-maven-project-junit-mockito-hamcrest-assertj.html

maven mockito

maven mockito_如何:测试Maven项目(JUnit,Mockito,Hamcrest,AssertJ)中的依赖项相关推荐

  1. 使用Maven在jar中包含依赖项

    本文翻译自:Including dependencies in a jar with Maven Is there a way to force maven(2.0.9) to include all ...

  2. 如何在Gradle多项目构建中管理依赖项

    从很早以前我就一直喜欢Gradle构建工具. 它的潜力甚至在1.0版本之前就已经很明显了,那时变化经常被打破. 如今,升级很少会引起意外. 该工具已经成熟并且运行良好. Gradle包括一个功能强大的 ...

  3. 问题:为命名空间,在此被用作类型和此项目作为引用添加将导致循环依赖项

    两个问题: 1.此项目作为引用添加将导致循环依赖项 说明你的两个项目中互相添加了引用.例如你再SQLTest中添加了Sineva.Entity,然后在Sineva.Entity中添加引用SQLTest ...

  4. asp.net 将此项目作为引用添加将导致循环依赖项

    未能添加对"SystemFramework" 的引用.将此项目作为引用添加将导致循环依赖项. 避免该错误发生的方式: 1个工程里有A和B两个项目,在A里引用了B,在B里也引用了A就 ...

  5. java maven 编译 清理 测试 打包项目

    目录 一.创建Maven项目 1.1.建立Hello项目 1.2.使用Maven编译.清理.测试.打包项目 1.2.组合使用Maven的命令 二.在别的项目中使用通过Maven安装生成的项目的jar包 ...

  6. tdd java_适用于Idea的面向现代TDD的Java 8 JUnit测试模板(带有Mockito和AssertJ)

    tdd java 使用类似于BDD的语法,Java 8和Mockito-AssertJ二重奏为Idea调整JUnit测试类模板. 本文涵盖的主题似乎很简单. 但是,根据我的培训师经验,我知道(不幸的) ...

  7. 适用于Idea的面向现代TDD的Java 8 JUnit测试模板(带有Mockito和AssertJ)

    使用类似BDD的语法,Java 8和Mockito-AssertJ二重奏为Idea调整JUnit测试类模板. 本文涵盖的主题似乎很简单. 但是,根据我的培训师经验,我知道(不幸的是)这不是常见的做法. ...

  8. 去除maven父依赖_如何在Maven中从父项目中排除依赖项?

    我遇到了和你一样的问题. 在我的项目中,让我们称父pom为parent.pom. parent定义了log4j,slf4j是这样的: org.slf4j slf4j-api ${slf4j-api.v ...

  9. maven exclude java_java – Maven:从shade插件中排除依赖项

    我在mvn clean install之后看过下一个字符串 Including com.sun.jersey.contribs:jersey-multipart:jar:1.5 in the shad ...

最新文章

  1. linux基础知识-链接列表
  2. ubuntu下python2完全卸载
  3. 关于xml的模糊查询问题
  4. muduo之TcpServer
  5. 你在做大数据?你有目标么?
  6. TransactionProducer(事务消息)
  7. 学习响应式BootStrap来写融职教育网站,要是踩到坑就找我。
  8. Python:numpy数组转换为json格式
  9. 用 Nginx 禁止国外 IP 访问我的网站....
  10. BHIOT-833物联网智能网关
  11. 南京师范大学与南京林业大学计算机,这8所高校“同宗同源”但不同命!有些是“985”,有些却是“双非”?...
  12. 【交换机在江湖】第十二章 VLAN基础篇
  13. 比较全的OA系统功能模块列表
  14. “996”引众怒,互联网疯狂的后遗症
  15. MySQL计算同比和环比
  16. 《蜘蛛侠1,2,3》
  17. 模型转换:pth转onnx
  18. 开源问答系统开源软件
  19. java程序员3-5年职业规划,附源代码
  20. regin,clip Android

热门文章

  1. 【做题记录】CF1428E Carrots for Rabbits—堆的妙用
  2. HDU5528 - Count a * b
  3. K8S Learning(7)—— Deployment
  4. Nacos(十)之Kubernetes Nacos
  5. Sentinel(九)之热点参数限流
  6. 所有和Java中代理有关的知识点都在这了
  7. JVM内存管理------JAVA语言的内存管理概述
  8. Java架构师必看的10本书
  9. 浅析负载均衡的6种算法,Ngnix的5种算法
  10. 去BAT面试完的Mysql面试题总结(55道)