JUnit 5和JUnit 4比较

JUnit 5和JUnit 4比较JUnit 5旨在调整java 8样式的编码,并且比JUnit 4更强大和灵活。在这篇文章中,JUnit 5 vs JUnit 4,我们将关注junit 4和junit 5之间的一些主要差异。1. JUnit 5 vs JUnit 4 – 注释两个版本中的大多数注释都是相同的,但很少有区别。这是一个快速比较。特征 JUNIT 4 JUNIT 5 声明一种测试方法 …

大家好,又见面了,我是你们的朋友全栈君。

JUnit 5旨在调整java 8样式的编码,并且比JUnit 4更强大和灵活。在这篇文章中,JUnit 5 vs JUnit 4,我们将关注junit 4和junit 5之间的一些主要差异。

1. JUnit 5 vs JUnit 4 – 注释

两个版本中的大多数注释都是相同的,但很少有区别。这是一个快速比较。

特征 JUNIT 4 JUNIT 5
声明一种测试方法 @Test @Test
在当前类中的所有测试方法之前执行 @BeforeClass @BeforeAll
在当前类中的所有测试方法之后执行 @AfterClass @AfterAll
在每个测试方法之前执行 @Before @BeforeEach
每种测试方法后执行 @After @AfterEach
禁用测试方法/类 @Ignore @Disabled
测试工厂进行动态测试 NA @TestFactory
嵌套测试 NA @Nested
标记和过滤 @Category @Tag
注册自定义扩展 NA @ExtendWith

2. JUnit 5和JUnit 4之间的其他差异

2.1  组成

JUnit 4将所有内容捆绑到单个jar文件中。

Junit 5由3个子项目组成,即JUnit Platform,JUnit Jupiter和JUnit Vintage。

  1. JUnit平台

    它定义了TestEngine用于开发在平台上运行的新测试框架的API。

  2. JUnit Jupiter

    它具有所有新的junit注释和TestEngine实现,以运行使用这些注释编写的测试。

  3. JUnit Vintage

    支持在JUnit 5平台上运行JUnit 3和JUnit 4编写的测试。

 

2.2。必需的JDK版本

Junit 4需要Java 5或更高版本。

Junit 5需要Java 8或更高版本。

2.3。断言

在Junit 4中,org.junit.Assert具有所有断言方法来验证预期结果和结果。
它们接受错误消息的额外参数作为方法签名中的FIRST参数。例如

public static void assertEquals(long expected, long actual)

public static void assertEquals(String message, long expected, long actual)

在JUnit 5中,org.junit.jupiter.Assertions包含大多数断言方法,包括附加assertThrows()assertAll()方法。assertAll()到目前为止处于实验状态,并用于分组断言。
JUnit 5断言方法也有重载方法,以支持在测试失败时传递错误消息,例如

public static void assertEquals(long expected, long actual)

public static void assertEquals(long expected, long actual, String message)

public static void assertEquals(long expected, long actual, Supplier messageSupplier)

2.4。假设

在Junit 4中,org.junit.Assume包含用于说明测试有意义的条件的假设的方法。它有以下五种方法:

  1. assumeFalse()
  2. assumeNoException()
  3. assumeNotNull()
  4. 假使,假设()
  5. assumeTrue()

在Junit 5中,org.junit.jupiter.api.Assumptions包含用于说明测试有意义的条件的假设的方法。它有以下三种方法:

  1. assumeFalse()
  2. 假使,假设()
  3. assumeTrue()

2.5。标记和过滤

在Junit 4中,使用了@category注释。

在Junit 5中,使用了@tag注释。

2.6。测试套房

在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("com.howtodoinjava.junit5.examples")

public class JUnit5Example

{

}

2.7。第三方整合

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

JUnit 5为此专门设立了子项目,即JUnit平台。它定义了TestEngine用于开发在平台上运行的测试框架的API。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/147142.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • github邮箱验证不了_为什么github注册不成功

    github邮箱验证不了_为什么github注册不成功要使用github必须先注册个github账号,注册之后会有一个邮箱验证的步骤需要做但是如果你使用126,163或者其它的一些免费邮箱,极有可能是收不到邮箱的,这个就麻烦了不过,qq邮箱目前是可以使用的,         不过也可能出现收不到的情况,那就换个qq邮箱再试,         如果还不行,换个时间段再试;   

    2025年11月3日
    5
  • J2EE是什么,主要包括哪些技术[通俗易懂]

    J2EE是什么,主要包括哪些技术[通俗易懂]https://blog.csdn.net/Ashes18/article/details/73614571最近最为深刻的认识:被面试老师问到了的知识,哪些是在自己心中模棱两可,似是而非的概念都一目了然。而后,只有在顿悟中不断总结才能进步。今天,我总结的部分是J2EE到底是什么东西,它包括了哪些技术。一、J2EE是什么?从整体上讲,J2EE是使用Java技术开发企业级应用的工业标准,它…

    2022年10月11日
    4
  • 弹框遮罩层「建议收藏」

    .back_con{position:fixed;top:0;left:0;width:100%;height:100%;z-index:9997;

    2022年4月13日
    42
  • 什么是tcp协议和udp协议_udp协议和tcp协议

    什么是tcp协议和udp协议_udp协议和tcp协议TCP(TransmissionControlProtocol传输控制协议)是一种面向连接(连接导向)的、可靠的、基于IP的传输层协议。TCP在IP报文的协议号是6。TCP是一个超级麻烦的协议,而它又是互联网的基础,也是每个程序员必备的基本功。首先来看看OSI的七层模型:我们需要知道TCP工作在网络OSI的七层模型中的第四层——Transport层,IP在第三层——Network层,A…

    2025年9月20日
    4
  • oracle sql列转行_oracle 列转行

    oracle sql列转行_oracle 列转行业务中做报表,需要将一列列数据汇总成一行,然后汇总,如下:需要将每个产品进行汇总,通过ichartjs进行展示,图表中需要数据的顺序是:Java代码vardata=[{name:’产品1′,value:[145,192,198,180],color:’#dad81f’},{name:’产品2′,value:[135,210,180,210],color:’#1f7e92’…

    2022年6月29日
    24
  • python基础几大数据类型

    python基础几大数据类型数据类型1.数据类型之整型int大白话理解:整数int作用:记录人的年龄班级人数…定义:都是整数age=18直接写整数就是整型2.数据类型之浮点型float大白话理解:

    2022年7月5日
    19
  • 发表回复

    您的邮箱地址不会被公开。 必填项已用 * 标注

    关注全栈程序员社区公众号