Junit4Junit5对比

article/2025/10/2 11:32:25

Junit是Java编程语言的单元测试框架,用来编写单元测试代码。随着Junit5的盛行,与Junit4有何差异。

  1. JDK支持

Junit4需要Java5+版本

Junit5需要Java8+版本

  1. Maven依赖

Junit4不区分模块,只有一个jar:

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

Junit5分为3个模块:

  • junit-jupiter: junit5核心模块,提供了junit5的新编程模型。包含了一个测试引擎,用于junit-platform上运行。

  • junit-platform:平台功能模块,其他测试引擎可以基于此平台接入junit。

  • junit-vintage:用于兼容junit3,junit4的测试引擎。

<dependency><groupId>org.junit.jupiter</groupId><artifactId>junit-jupiter</artifactId><version>RELEASE</version><scope>test</scope>
</dependency>
  1. springboot版本依赖

spring-boot 2.2版本之前默认使用Junit4;2.2之后的版本使用的则是Junit5。

  1. 注解区别

Junit5

Junit4

说明

@Test

@Test

被注解的方法是一个测试方法。与 JUnit 4 相同。

@BeforeAll

@BeforeClass

被注解的(静态)方法将在当前类中的所有 @Test 方法前执行一次。

@BeforeEach

@Before

被注解的方法将在当前类中的每个 @Test 方法前执行。

@AfterEach

@After

被注解的方法将在当前类中的每个 @Test 方法后执行。

@AfterAll

@AfterClass

被注解的(静态)方法将在当前类中的所有 @Test 方法后执行一次。

@Disabled

@Ignore

被注解的方法不会执行(将被跳过),但会报告为已执行

Junit4中的@Test是import org.junit.Test;

Junit5中的@Test是import org.junit.jupiter.api.Test;

  1. 断言标准

断言方法

说明

assertEquals(expected, actual)

如果 expected 不等于 actual ,则断言失败。

assertFalse(booleanExpression)

如果 booleanExpression 不是 false ,则断言失败。

assertNull(actual)

如果 actual 不是 null ,则断言失败。

assertNotNull(actual)

如果 actual 是 null ,则断言失败。

assertTrue(booleanExpression)

如果 booleanExpression 不是 true ,则断言失败。

Junit4中断言内容位于org.junit.Assert类;

Junit5中断言内容位于org.junit.jupiter.api.Assertions类;

// junit4
org.junit.Assert.assertEquals(1.0, 1.0);// junit5
org.junit.jupiter.api.Assertions.assertEquals(1.0, 1.0);
  1. 测试手法

重复测试:

/*** junit4需要手动new repeatTest*/
@Test
public void repeatTest4(){TestSuite suite = new TestSuite();// 10表示重复测试次数suite.addTest(new RepeatedTest(new TestSample(), 10));
}/*** junit5通过使用@RepeatedTest注解方法并指定所需的重复次数*/
@org.junit.jupiter.api.RepeatedTest(10)
public void repeatTest5(){// todo...
}
  1. 写法差异

Junit5:

import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.assertEquals;public class DemoTest {@Testvoid test() {assertEquals(2, 1);}
}

Junit4:

package tech.pdai.junit4;import org.junit.Test;
import static org.junit.Assert.assertEquals;public class HelloWorldTest {@Testpublic void DemoTest() {assertEquals(2, 1);}

可以看到Junit5写法上除了导入的包不一致外,还支持非public的方法测试。

  1. 小结

以上是对常见的一些用法差异的总结。Junit5在Junit4的基础上,增加了一些新的特性。增加了基于lambda的支持,同时简化了一些测试手法的编写,如重复性测试,参数化测试等等。Junit5配合mockito等测试框架,使用体验上还是不错的。


http://chatgpt.dhexx.cn/article/6RTNiDdd.shtml

相关文章

eclipse中Junit4(单元测试)的配置和使用

在项目的实际开发中&#xff0c;我们需要在完成每层的功能代码实现之后去对该功能的代码进行测试&#xff0c;这是因为如果在所有的代码都写完之后在测试的话&#xff0c;会造成调试困难&#xff0c;代码修改起来也很繁琐&#xff0c;这样开发效率会大大降低&#xff0c;不利于…

IDEA中添加junit4的三种方法

1、第一种方法 首先创建一个工程&#xff0c;创建好一个测试类&#xff0c;类的名称最好不要取Test&#xff0c;接下来写下一个注解Test&#xff0c;此时会报错。 报错的原因是创建的工程项目没有导入Junit4依赖&#xff0c;具体查看是在左上角 file–>project structure …

JUnit 4 与 TestNG 对比

Junit 4 和 TestNG 都是 Java 方面非常流行的单元测试框架。在功能上两个框架都非常类似。到底哪个比较好&#xff1f;在Java项目中我们应该选择哪个框架&#xff1f; 下图将会对Junit 4 和 TestNG 做个功能特征的对比。 注解支持 Junit 4 和 TestNG 在注解方面的实现非常相似。…

Junit 4 Tutorials(Junit 4 教程) 一、Junit简介及Junit Eclipse 教程

Junit 测试框架简介 测试框架是最流行的Java单元测试框架。Junit被用来开发对Java类的单元测试。它就是一个类包&#xff0c;提供了各种方法来测试Java类中的方法(method)。 Junit 4 特性 简单的注解&#xff0c;提供书写Junit测试的基本特性断言方法(Assert Methods)比较测试…

JUnit4 与 JUnit 5 常用注解对比

JUnit4 与 JUnit 5 常用注解对比 JUnit4JUnit5说明TestTest表示该方法是一个测试方法。JUnit5与JUnit 4的Test注解不同的是&#xff0c;它没有声明任何属性&#xff0c;因为JUnit Jupiter中的测试扩展是基于它们自己的专用注解来完成的。这样的方法会被继承&#xff0c;除非它…

JUnit4教程(一):基本应用

一、简介 这个估计大家都比我清楚了&#xff0c;JUnit是一个单元测试框架&#xff0c;我们可以基于它编写用来测试代码的代码&#xff0c;从而更方便地进行回归测试。 二、编写测试与断言&#xff08;Assertion&#xff09; 在Junit4中&#xff0c;编写一个测试方法只需要使用…

JUnit4使用教程-快速入门

序言 大学刚学java的时候就听说过JUnit了&#xff0c;单元测试框架&#xff0c;很好用的测试框架&#xff0c;JUnit测试框架将测试更加便捷和容易&#xff0c;编写测试代码也是简单、明了&#xff0c;功能强大。今天我给大家简单分享一下最新JUnit4的使用&#xff0c;几分钟入…

单元测试——junit4入门例子

简单的Junit4 单元测试入门例子 新建第一个测试test case 这次我使用一个简单的例子来介绍如何写一个简单的单元测试&#xff0c;这里所用的测试工具是eclipse。 点击下载->涉及的项目源代码下载 被测文件 Calculate.java package com.junit4.main;public class Calcul…

JUnit4教程

因jdk5中的新特性&#xff0c;JUnit4也因此有了很大的改变。确切的说&#xff0c;Junit4简直就不是3的扩展版本&#xff0c;而是一个全新的测试框架。下面详细介绍JUnit4的使用方法 1.测试方法&#xff1a; 在junit4之前&#xff0c;测试类通过继承TestCase类&#xff0c;并使用…

JUnit4 jar包下载

JUnit4 jar包 链接&#xff1a;https://pan.baidu.com/s/112B-PaQvlTAzEXxHcpC9Sw 密码&#xff1a;ktrn

JUnit4单元测试入门教程

JUnit4单元测试入门教程 - 简书 本文按以下顺序讲解JUnit4的使用 下载jar包单元测试初体验自动生成测试类执行顺序Test的属性 下载jar包## 下载地址 在github上&#xff0c;把以下两个jar包都下载下来。 下载junit-4.12.jar&#xff0c;junit-4.12-javadoc.jar&#xff08;文…

JUnit4的使用和配置

JUnit4是JUnit框架有史以来的最大改进&#xff0c;其主要目标便是利用Java5的Annotation特性简化测试用例的编写。 先简单解释一下什么是Annotation&#xff0c;这个单词一般是翻译成元数据。元数据是什么&#xff1f;元数据就是描述数据的数据。也就是说&#xff0c;这个东西在…

浅谈java单元测试框架junit4/5

0 前言 junit是一个开源的Java语言的单元测试框架。目前junit主要有版本junit3&#xff0c;junit4和junit5。因在junit3中&#xff0c;是通过对测试类和测试方法的命名来确定是否是测试&#xff0c;且所有的测试类必须继承junit的测试基类TestCase&#xff0c;所以本文不再讨论…

IDEA中使用JUnit4(单元测试框架)超详细!

IDEA中使用JUnit4教程 超详细&#xff01;(单元测试框架) 导语&#xff1a;自动化测试的必经之路–Selenium 作者&#xff1a;变优秀的小白 Github&#xff1a;YX-XiaoBai QQ交流群(new): 811792998 爱好&#xff1a;Americano More Ice ! 话不多说&#xff0c;实战为主&…

Junit 4 的使用

一、什么是 Junit 我们来百度一波&#xff0c;什么是 Junit 可以看到哈&#xff0c;Junit 是一个 Java 语言的单元测试框架&#xff0c;这个东西是程序员自测所需要的一个东西&#xff0c;这个测试也被称为白盒测试。&#xff08;下面会去说什么是白盒测试&#xff09; 我们之…

JUnit4

1.JUnit4全面引入Annotation来执行我们编写的测试 2.JUnit4并不要求测试类继承TestCase父类 3.在一个测试类中&#xff0c;所有被Test注解所修饰的public,void方法都是test case,可以被JUnit所执行。 4.虽然JUnit4并不要求测试方法名以test开头&#xff0c;但我们最好还是按照 …

Junit 4详解

Java单元机测试框架 --- Junit4 1、什么是Junit4 JUnit4是一个易学易用的Java单元测试框架,一般我们在写完一段代码或一个方法的时候,都要测试一下这段代码和这个方法的逻辑是不是正确,输入一定的数据,返回的数据是不是我们想要的结果,即我们在写单个业务代码针对结果进行…

IOS UIBUtton

Type 第二个是Customer 常用 按钮的阴影效果只能左右 这是区别于标签的地方 阴影设置没有负值 按钮的代码使用 按钮点击方法 代码设置 传参

UIButton设置图片位置

设置小图片image的位置 image默认图片保持原大小可以通过设置contentVerticalAlignment和contentHorizontalAlignment&#xff0c;修改位置&#xff0c;甚至填充满按钮 // 修改图片位置 图2的效果[button setImage:image forState:UIControlStateNormal];button.contentVerti…

UIButton基础总结

1、UIButton简介 UIButton继承自UIControl。 2、UIButton的四种状态 UIButton的四种状态分别为Normal、Highlighted、Disabled和Selected。 **&#xff08;1&#xff09;Normal&#xff1a;**按钮的普通状态&#xff0c;即为按钮的初始状态 **&#xff08;2&#xff09;Highlig…