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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • gemtuzumab ozogamicin_gazopa识图

    gemtuzumab ozogamicin_gazopa识图原文链接:http://www.sohu.com/a/306325058_671230纵观数据中心业界,底层技术方面其实正处在一场架构变革的初始点,这场变革就是I/O总线的网络化以及I/O资源的大规模池化。众所周知,在开放平台下,PCIE是目前高性能I/O设备普遍采用的总线类型,目前已经到Gen4,很快会到Gen5。但是PCIE总线的树形拓扑以及有限的设备标识ID号码范围,导致其无法形成一个大规模网络,这个问题在NVMe盘未普及之前显得不那么是个问题,但是NVMe盘得道广泛应用之后,会占用大量的PCIE

    2022年10月30日
    0
  • MySQL多表关联查询

    MySQL多表关联查询SQL连接(JOIN)子句用于把来自两个或多个表的行结合起来,基于这些表之间的共同字段。连接的结果可以在逻辑上看作是由SELECT语句指定的列组成的新表。左连接与右连接的左右指的是以两张表中的哪一张为基准,它们都是外连接。外连接就好像是为非基准表添加了一行全为空值的万能行,用来与基准表中找不到匹配的行进行匹配。假设两个没有空值的表进行左连接,左表是基准表,左表的所有行都出现在结果中,右表则可能

    2022年5月5日
    41
  • docker 修改容器时间_docker开放容器端口

    docker 修改容器时间_docker开放容器端口前言用docker搭建的Jenkins环境时间显示和我们本地时间相差8个小时,需修改容器内部的系统时间查看时间查看系统时间date-R进入docker容器内部,查看容器时间dockere

    2022年7月31日
    5
  • flutter错误: 找不到或无法加载主类 org.gradle.wrapper.GradleWrapperMain

    flutter错误: 找不到或无法加载主类 org.gradle.wrapper.GradleWrapperMain

    2021年9月30日
    117
  • phpstorm激活码[免费获取]「建议收藏」

    (phpstorm激活码)JetBrains旗下有多款编译器工具(如:IntelliJ、WebStorm、PyCharm等)在各编程领域几乎都占据了垄断地位。建立在开源IntelliJ平台之上,过去15年以来,JetBrains一直在不断发展和完善这个平台。这个平台可以针对您的开发工作流进行微调并且能够提供…

    2022年3月22日
    158
  • PHP数组转json「建议收藏」

    PHP数组转json「建议收藏」$json=array( ‘total’=>3, ‘rows’=>array( array( ‘value’=>’1’, ‘color’=>”#DC143C” ), array(

    2022年6月21日
    20

发表回复

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

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