时间:2021-05-19
本文演示了如何如何编写JUnit 5测试用例,在Maven项目中运行JUnit 5测试用例。
编写JUnit 5测试用例
如果你是Java开发者,那么对于JUnit应该就不陌生。JUnit是Java单元测试的基础工具。
JUnit目前最新的版本是JUnit 5.x,但广大的Java开发者估计还停留在JUnit 4.x,因此有必要演示下如何编写JUnit 5测试用例。
引入JUnit 5依赖
相比较JUnit 4而言,JUnit 5一个比较大的改变是JUnit 5拥有与JUnit 4不同的全新的API。JUnit 5分成了三部分:
JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage因此,在Maven中,JUnit 5分模块的,意味着你可以按需引入上面定义的任意模块。这使得引入JUnit 5依赖就有了多个选择。
一般而言,力求省事,就可以通过引入junit-jupiter依赖。junit-jupiter就是常用JUnit 5模块的聚合包。
<dependency> <groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter</artifactId> <version>${junit-jupiter.version}</version> <scope>test</scope></dependency>编写测试用例
下面是一段简单的Java程序:
/** * Welcome to https://waylau.com */package com.waylau.java.demo;/** * Hello World. * * @since 1.0.0 2020年4月12日 * @author <a href="https://waylau.com" rel="external nofollow" rel="external nofollow" >Way Lau</a> */public class HelloWorld { private String words; public HelloWorld(String words) { this.words = words; } public String getWords() { return words; }}按照管理,我们会在Maven工程的test目录,创建一个与之对应的单元测试用例:
/** * Welcome to https://waylau.com */package com.waylau.java.demo;import org.junit.jupiter.api.Test;import static org.junit.jupiter.api.Assertions.assertEquals;/** * HelloWorld Test. * * @since 1.0.0 2020年4月12日 * @author <a href="https://waylau.com" rel="external nofollow" rel="external nofollow" >Way Lau</a> */class HelloWorldTests { @Test void testGetWords() { var words = "Hello World"; var hello = new HelloWorld(words); assertEquals(words, hello.getWords()); }}上述用例非常简单,就是想测试下,HelloWorld的getWords方法,是否与预期的一致。
这里需要强调的是JUnit 5和JUnit 4的不同点:
运行JUnit 5测试用例
上如上文所讲,在大多数主流的IDE中,都提供了对JUnit 5的支持。因此可以选择在IDE中运行,也可以通过Maven执行测试。
在IDE中运行
以Eclipse IDE为例,右键类或者方法,选择“Run As -> JUnit Test”即可。如下图所示。
通过Maven执行测试
在Maven中执行测试用例的命令如下:
mvn test如果你执行了上述命令,会得到下面的测试结果
-------------------------------------------------------
T E S T S
-------------------------------------------------------
Running com.waylau.java.demo.HelloWorldTests
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.002 sec
Results :
Tests run: 0, Failures: 0, Errors: 0, Skipped: 0
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 1.983 s
[INFO] Finished at: 2020-04-12T11:22:16+08:00
[INFO] ------------------------------------------------------------------------
上面结果没有失败的用例,但同时你也发现了没有成功的用例。因为根本没有执行测试用例。
这是因为,在Maven中并不能直接识别JUnit 5测试用例。如何解决?此时,还需要额外加多Maven Surefire或Maven Failsafe两个插件。
<build> <plugins> <plugin> <artifactId>maven-surefire-plugin</artifactId> <version>${maven-surefire-plugin.version}</version> </plugin> <plugin> <artifactId>maven-failsafe-plugin</artifactId> <version>${maven-failsafe-plugin.version}</version> </plugin> </plugins></build>在Maven中再次执行测试用例,会得到下面的测试结果:
[INFO] -------------------------------------------------------
[INFO] T E S T S
[INFO] -------------------------------------------------------
[INFO] Running com.waylau.java.demo.HelloWorldTests
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.045 s - in com.waylau.java.demo.HelloWorldTests
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 1, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 4.116 s
[INFO] Finished at: 2020-04-12T11:30:29+08:00
[INFO] ------------------------------------------------------------------------
可以看到,HelloWorldTests类已经得到了测试执行。
参考引用
Eclipse IDE支持Java 14:
本文示例源码:https://github.com/waylau/java-data-structures-and-algorithms-in-action
到此这篇关于如何在Maven项目中运行JUnit5测试用例实现的文章就介绍到这了,更多相关Maven运行JUnit5测试内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
1.问题在Idea2017.3中,建立JUnit5的测试用例TestCase,同时建立JUnit4的测试套件,运行测试套件时提示出错“java.lang.Exc
使用Junit或者TestNG可以进行单体测试,这篇文章简单说明一下如何在Springboot的项目中使用Junit进行单体测试。pom设定pom中需要添加sp
什么是Junit5?先看来个公式:JUnit5=JUnitPlatform+JUnitJupiter+JUnitVintage这看上去比Junit4复杂
前面一篇有说道如何在MyEclipse中搭建maven项目,这里将继续介绍如何在搭建好的基础maven项目中引入我们常用的javaweb框架——SpringMV
所需要用到的其他工具或技术:项目管理工具:Maven测试运行工具:Junit数据库:DerbyMavenDependencies:org.mybatismyba