JUnit5 安装与使用
虽然JUnit5 的测试版本早就出来了,但正式版直到几年9月份推出,目前最新版5.0.1。几乎所有的Java 开发人员都会使用JUnit 来做测试,但其实很多自动化测试人员也会使用Junit 。目前,Android单元测试默认使用 Junit4,相信不久的将来也会使用 JUnit5 。
但是介绍 JUnit5 安装与使用资料并不算太多。本文普及一下JUnit5 安装与基本使用。
什么是Junit5 ?
先看来个公式:
JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage
这看上去比Junit4 复杂,实际上在导入包时也会复杂一些。
JUnit Platform是在JVM上启动测试框架的基础。
JUnit Jupiter是JUnit5扩展的新的编程模型和扩展模型,用来编写测试用例。Jupiter子项目为在平台上运行Jupiter的测试提供了一个TestEngine (测试引擎)。
JUnit Vintage提供了一个在平台上运行JUnit 3和JUnit 4的TestEngine 。
环境:
IDE:IntelliJ IDEA
版本工具:Maven
如果你从没使用过IntelliJ IDEA 和Maven的话,那么本文不适合你。
接下来在 IntelliJ IDEA中创建一个Maven项目,创建项目目录结果如下:
在 pom.xml 文件中添加JUnit5的相关库。
<dependencies> <dependency>
<groupId>org.junit.platform</groupId>
<artifactId>junit-platform-launcher</artifactId>
<version>1.0.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-engine</artifactId>
<version>5.0.1</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.junit.vintage</groupId>
<artifactId>junit-vintage-engine</artifactId>
<version>4.12.1</version>
<scope>test</scope>
</dependency> </dependencies>
在test.java目录下创建一个 FistJUnit5Tests 类。代码如下:
import static org.junit.jupiter.api.Assertions.assertEquals; import org.junit.jupiter.api.Test; class FirstJUnit5Tests { @Test
void myFirstTest() {
assertEquals(2, 1 + 1);
} }
明显看出和Junit4 还是有些不同的。首先,导入测试测试注解(@Test)和断言方法(assertEquals)的路径不同。其次,不需要手动把测试和测试方法声明为 public 了。
import static org.junit.jupiter.api.Assertions.assertEquals;
import static org.junit.jupiter.api.Assertions.assertTrue;
import static org.junit.jupiter.api.Assertions.assertAll; import org.junit.jupiter.api.*; class FirstJUnit5Tests { @BeforeEach
@DisplayName("每条用例开始时执行")
void start(){ } @AfterEach
@DisplayName("每条用例结束时执行")
void end(){ } @Test
void myFirstTest() {
assertEquals(2, 1 + 1);
} @Test
@DisplayName("描述测试用例╯°□°)╯")
void testWithDisplayName() { } @Test
@Disabled("这条用例暂时跑不过,忽略!")
void myFailTest(){
assertEquals(1,2);
} @Test
@DisplayName("运行一组断言")
public void assertAllCase() {
assertAll("groupAssert",
() -> assertEquals(2, 1 + 1),
() -> assertTrue(1 > 0)
);
} @Test
@DisplayName("依赖注入1")
public void testInfo(final TestInfo testInfo) {
System.out.println(testInfo.getDisplayName());
} @Test
@DisplayName("依赖注入2")
public void testReporter(final TestReporter testReporter) {
testReporter.publishEntry("name", "Alex");
} }
上面一段代码,大概展示了Junit5的一些新的特性或与旧版本的不同。我通过用例描述,已经做了介绍。在IDEA中的运行结果如下。
参考:http://junit.org/junit5/docs/current/user-guide/
JUnit5 安装与使用的更多相关文章
- junit5荟萃知识点(一):junit5的组成及安装
1.什么是junit5? 和之前的junit版本不一样,junit5是由三个模块组成. JUnit 5 = JUnit Platform + JUnit Jupiter + JUnit Vintage ...
- JUnit5 快速指南
JUnit5 快速指南 version: junit5 1. 安装 2. JUnit 注解 3. 编写单元测试 3.1. 基本的单元测试类和方法 3.2. 定制测试类和方法的显示名称 3.3. 断言( ...
- Junit5中实现参数化测试
从Junit5开始,对参数化测试支持进行了大幅度的改进和提升.下面我们就一起来详细看看Junit5参数化测试的方法. 部署和依赖 和Junit4相比,Junit5框架更多在向测试平台演进.其核心组成也 ...
- 单元测试实践思考(junit5+jmockit+testcontainer)
目录 背景 方案设计 单元测试指导思想 单层隔离 内部穿透 技术实现 依赖管理 基础架构 封装Junit5&Jmockit 单元测试配置 TestContainer封装 官方方案 实际方案 完 ...
- JUnit5学习之一:基本操作
欢迎访问我的GitHub https://github.com/zq2599/blog_demos 内容:所有原创文章分类汇总及配套源码,涉及Java.Docker.Kubernetes.DevOPS ...
- JUnit5 快速入门指南
1. 安装 在pom中添加依赖 <properties> <junit.jupiter.version>5.3.2</junit.jupiter.version> ...
- docker——容器安装tomcat
写在前面: 继续docker的学习,学习了docker的基本常用命令之后,我在docker上安装jdk,tomcat两个基本的java web工具,这里对操作流程记录一下. 软件准备: 1.jdk-7 ...
- 网络原因导致 npm 软件包 node-sass / gulp-sass 安装失败的处理办法
如果你正在构建一个基于 gulp 的前端自动化开发环境,那么极有可能会用到 gulp-sass ,由于网络原因你可能会安装失败,因为安装过程中部分细节会到亚马逊云服务器上获取文件.本文主要讨论在不变更 ...
- Sublime Text3安装JsHint
介绍 Sublime Text3使用jshint依赖Nodejs,SublimeLinter和Sublimelinter-jshint. NodeJs的安装省略. 安装SublimeLinter Su ...
随机推荐
- Java中如何引入结对编程
引自微信: 很多同学说: 我程序写得好,ACM比赛能得分, 就好了,软件工程讲的那些有用么? 有些学校的 <软件工程>课,由于要求太简单,反而不能说明软件工程的价值. 其实好办, 让学生结 ...
- 201521123011《Java程序设计》第14周学习总结
1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结多数据库相关内容. MySql数据库简单操作 1.启动与退出(quit或exit ) 操作 显示所有数据库: show databa ...
- 201521123023《Java程序设计》第13周学习总结
1. 本周学习总结 (1)网络中为了进行数据交换(通信)而建立的规则.标准或约定(=语义+语法+规则)称之为协议(常用http/ftp) (2)大致熟悉了TCP协议,但是UDP怎么辣么蓝,好理解却用不 ...
- 如何延长IntelliJ IDEA的试用期?
想打开idea写个代码...提示idea快过期...不开森...然鹅. 根据网上各种说明,总结大体分为以下4种方法: 方法1.直接输入激活码Activation Code(亲自验证有效而且非常简单 ...
- spring实例化dataSource使用jndi和jdbc两种方式
一.使用jndi的方式 这种方式方便测试人员不需要改代码,直接改变tomcat的server.xml就可以更改数据库连接 spring创建bean <bean id="dataSour ...
- 月亮之眼_KEY
[问题描述] 吉儿是一家古董店的老板娘,由于她经营有道,小店开得红红火火.昨天,吉儿无意之中得到了散落民间几百年的珍宝--月亮之眼.吉儿深知"月亮之眼"价值连城:它是由许多珍珠相连 ...
- Piggy Back_KEY
Piggy Back (piggyback.pas/c/cpp) [问题描述] Bessie 和她的姐姐 Elsie 在不同的田块吃草,晚上她们都返回牛棚休息.作为聪明的奶牛,她们想设计一个方案使得步 ...
- Delphi10.2 VCL Forms Application 的构成
Delphi10.2 项目的构成(File Extensions of Files Generated by RAD Studio) Step1.打开 Delphi10.2,选择[File | New ...
- Linux之不得不说的init(Linux启动级别的含义 init 0-6)
init 0:关机: init 1:单用户模式(只root进行维护): init 2:多用户 init 3:完全多用户 init 4:安全模式 init 5:图形化 init 6:重启 可以在/etc ...
- Free Goodies UVA - 12260 贪心
Free Goodies Time Limit: 3000MS Memory Limit: Unknown 64bit IO Format: %lld & %llu [Submit ...