所需JDK

Junit 4 Junit 5
需要 Java 5 或以上版本 需要Java 8 或以上版本

Architecture

Junit 4 所有的东西在一个jar包里,maven依赖如下:

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

Junit 5 由JUnit Platform, JUnit Jupiter 和 JUnit Vintage 三个子项目组成:

  1. JUnit Platform
    定义了 test engine API,用于开发在平台上运行新测试框架
  2. JUnit Jupiter:包含所有注解,有 TestEngine 实现来运行用这些注解编写的测试用例。
  3. JUnit Vintage
    用JUnit 3 和 JUnit 4写的测试用例可以在JUnit 5 Platform上运行

注解

说明 Junit 4 Junit 5
定义测试方法即用例 @Test @Test
在当前类中的所有测试方法之前执行 @BeforeClass @BeforeAll
在当前类中的所有测试方法之后执行 @AfterClass @AfterAll
在每个测试用例前执行 @Before @BeforeEach
在每个测试用例后执行 @After @AfterEach
禁用测试方法或类 @Ignore @Disabled
Tagging 和 filtering @Category @Tag

断言

Junit 4 :org.junit.Assert
Junit 5:org.junit.jupiter.Assertions

Assumptions

Junit 4 :org.junit.Assume ,有如下5个方法:

assumeFalse()
assumeNoException()
assumeNotNull()
assumeThat()
assumeTrue()

Junit 5:org.junit.jupiter.api.Assumptions ,有如下三个方法:

assumeFalse()
assumingThat​()
assumeTrue()

Test Suites

Junit 4 用@RunWith 和 @Suite 注解:

import org.junit.runner.RunWith;
import org.junit.runners.Suite;@RunWith(Suite.class)
@Suite.SuiteClasses({ExceptionTest.class, TimeoutTest.class
})
public class JUnit4Example
{
}

Junit 5 用@RunWith, @SelectPackages 和 @SelectClasses,如下:

import org.junit.platform.runner.JUnitPlatform;
import org.junit.platform.suite.api.SelectPackages;
import org.junit.runner.RunWith;@RunWith(JUnitPlatform.class)
@SelectPackages("junit5.examples")
public class JUnit5Example
{
}

第三方集成

在JUnit4中,没有对第三方插件和IDE的集成支持。他们必须依靠reflection

JUnit5为此有专门的子项目,即JUnit platform,它定义了TestEngine API,用于开发在该平台上运行的测试框架

参考:https://howtodoinjava.com/junit5/junit-5-vs-junit-4/

Junit 4 与Junit 5区别相关推荐

  1. JUnit 4和JUnit 5区别

    特征 JUNIT 4 JUNIT 5 声明一种测试方法 @Test @Test 在当前类中的所有测试方法之前执行 @BeforeClass @BeforeAll 在当前类中的所有测试方法之后执行 @A ...

  2. JUnit 5 –下一代JUnit的初步了解

    2月初, JUnit 5(又名JUnit Lambda)团队发布了一个alpha版本. 由于JUnit 4是我工具箱中使用最频繁的项目之一,因此我认为值得一看下一个主要版本. 我试用了最新版本,并记下 ...

  3. JUnit 4 与 JUnit 3

    JUnit 是 Java? 语言事实上的 标准单元测试库.JUnit 4 是该库三年以来最具里程碑意义的一次发布.它的新特性主要是通过采用 Java 5 中的标记(annotation)而不是利用子类 ...

  4. java 计算器 junit测试_Java Junit测试

    使用junit做测试目的是尽量早的发现程序的bug,一个bug隐藏的时间越久,修复他的代价就越大. 1.Junit简介: Junit最初是由Erich Gamma 和 Kent Beck 编写的一个回 ...

  5. junit junit_穿越JUnit流

    junit junit 关于JUnit 5迁移的好处之一是,您可以在老式模式下运行JUnit 4测试,并且所有内容仍然兼容. 不利的一面是,某些注释和方法在JUnit 4和JUnit 5中具有相同的名 ...

  6. junit junit_使用junit做其他事情

    junit junit junit!=单元测试 Junit是Java单元测试框架. 通常,我们将它用于单元测试,但是很多时候我们也使用它来执行集成测试. 主要区别在于,单元测试测试单个单元,而集成测试 ...

  7. junit runner_了解JUnit的Runner架构

    junit runner 几周前,我开始创建一个小的JUnit Runner( Oleaster ),它允许您使用Jasmine方式在JUnit中编写单元测试. 我了解到,创建自定义JUnit Run ...

  8. maven安装junit_JUnit安装Maven – JUnit 4和JUnit 5

    maven安装junit JUnit 4 and JUnit 5 are completely different frameworks. They both serve the same purpo ...

  9. junit5和junit4_JUnit声明异常– JUnit 5和JUnit 4

    junit5和junit4 We can test expected exceptions using JUnit 5 assertThrows assertion. This JUnit asser ...

  10. Junit中error和failure区别

    JUnit 中有两种错误类型,一个是 failure,另一个是 error.这两者之间的差别很微妙,但是我们如果能够理解这种差别的话,对我们使用 JUnit 将会非常有帮助的. 通常来说,failur ...

最新文章

  1. mysql dml ddldcl权限_MySQL中的DML、DDL、DCL到底是什么呢?
  2. nginx实现tomcat的负载均衡及企业内部应用的代理
  3. Mybatis分页插件PageInfo
  4. CodeForces 811B Vladik and Complicated Book
  5. SVN trunk branch tags 区别
  6. php 126怎么设置发送邮箱验证码,phpmailer发送网易126邮箱的例子
  7. [转]2020年2月份Github上最热门的开源项目,速来围观
  8. Java 12 要来了!
  9. 数据库系统原理简答题、论述题、判断题
  10. java 两个项目 生成唯一id_java方式生成唯一id
  11. FFmpeg总结(十三)用ffmpeg基于nginx实现直播功能,推流拉流
  12. 美团 java_GitHub - meituan/mssapi_java: 美团云对象存储 Java SDK
  13. 史上最全因果推断合集-12(因果推断在哈啰出行的实践探索)
  14. C++ Primer 读书笔记及知识点延伸 chapter1
  15. 大华摄像机找不到服务器,大华无法找到网络主机解决方法
  16. 阿里年薪50WJAVA工程师转大数据学习路线!
  17. Excel·VBA自定义正则表达式函数、使用
  18. 《学习geometric deep learning笔记系列》第一篇,Non-Euclidean Structure Data之我见
  19. 编译原理,C语言实现LR(0)分析(扩展文法的生成、项目集规范簇的生成、ACTION GOTO表的生成、句子的分析)
  20. OpenCV是什么?

热门文章

  1. mysql查询所有男生中姓王的_数据库6.22
  2. JDBC驱动连接SQLserver数据库
  3. 快播创始人微博晒出团队合照
  4. sql语句查询计算机系,SQL查询语句基础
  5. 流水线、超流水线、超标量(superscalar)技术对比
  6. 0DAY和warez
  7. 硬件升级win8.1重新安装系统
  8. 【Python】利用Python拟合函数曲线
  9. 5.4.3控制器设计 微程序控制器 微指令的设计
  10. htc G18 一键解锁,3键root