junit5(junit5和junit4的区别)

junit5(junit5和junit4的区别)文章目录 JUnit 是 Java 编程语言的单元测试框架 用于编写和运行可重复的自动化测试 也是当下主流的 Java 测试框架 如果有对单元测试还不熟悉的小伙伴可以看一下我的这篇文章 本文我们主要针对关于 JUnit4 和 5 的区别可以参考这篇文章 JUint 是 Java 编程语言的单元测试框架 用于编写和运行可重复的自动化测试 JUnit 的好处 来自百度百科 学习一个东西

大家好,我是讯享网,很高兴认识大家。



文章目录

JUnit是Java编程语言的单元测试框架,用于编写和运行可重复的自动化测试,也是当下主流的Java测试框架

如果有对单元测试还不熟悉的小伙伴可以看一下我的这篇文章——,本文我们主要针对关于JUnit4和5的区别可以参考这篇文章,。

JUint是Java编程语言的单元测试框架,用于编写和运行可重复的自动化测试

JUnit的好处(来自百度百科):

学习一个东西,最好的办法就是去看官方文档:

下面我根据官网和自己常用测试,来讲解JUnit

这是一个springboot项目,为了后续的SpringBoot2+H2+Mockito测试,读者也可以做一个maven项目

项目搭建:

maven包引入

完整pom.xml

测试@Test

执行结果:

@Test注解在方法上标记方法为测试方法,以便构建工具和 IDE 能够识别并执行它们。JUnit 4 需要测试方法为public,这和Junit 5 有差别。

@Before,@BeforeClass,@After,@AfterClass


讯享网

我们简单测试三个方法,后面的读者有兴趣可以自行测试,代码如下:

@Test注解还提供了追踪异常的选择,expected 参数和 @Test 注释一起使用。

@Test(expected):用来指示期望抛出的异常类型。

如果有读者不知道Java中异常的类型可以参考我之前写过的这篇文章:java处理异常这一篇就够了

简单的来说,就是JUnit中提供了一个如果测试时间超时的时候,也默认是测试失败,这个时间我们可以自己指定,@Test(timeout)

指捆绑了几个单元测试用例并运行起来,JUnit中,@RunWith和@Suite是用来运行套件测试的

熟悉JUnit4,转变到JUnit5是十分容易的,并且JUnit 5可以使用Vintage库运行JUnit 4测试,这意味着对于JUnit4的项目你可以不用迁移测试,从而继续使用JUnit4的测试代码。

JUnit4 转变到JUnit5

maven改变:

JUnit 5 使用新的 org.junit.jupiter 包。例如,org.junit.junit.Test变成了org.junit.jupiter.api.Test。

首先我们发现名称进行了改变,@Before变成了@BeforeEach等等……

其中@Test还将不再支持参数,这意味这中,@Test(expected = Exception.class),不再支持,替换为:

在JUnit5中提供了@ExtendWith 注解,是可重复的,例如在JUnit4中添加Spring框架构建测试:

而在JUnit5中:

显示名称。使用JUnit 5,你可以在类和方法中添加@DisplayName注释。这个名称在生成报告时使用,这使得描述测试的目的和追踪失败更容易,比如说:

断言:

断言。JUnit 5引入了一些新的断言,比如以下这些:

assertIterableEquals()使用equals()对两个迭代项进行深度验证。

assertLinesMatch()验证两个字符串列表是否匹配;它接受期望参数中的正则表达式。

assertAll() 将多个断言分组在一起。附加的好处是所有的断言都会被执行,即使单个断言失败。

assertThrows()和 assertDoesNotThrow()取代了 @Test 注释中的预期属性。

嵌套测试。JUnit 4中的测试套件是很有用的,但JUnit 5中的嵌套测试更容易设置和维护,它们能更好地描述测试组之间的关系,比如说:

测试的参数化

测试参数化在JUnit 4中就已经存在,有内置的库如JUnit4Parameterized或第三方库如JUnitParams等。在JUnit 5中,参数化测试完全内置,并采用了JUnit4Parameterized和JUnitParams等一些最好的特性。例子:

其格式看起来像JUnitParams,其中参数直接传递给测试方法。注意,要测试的值可以来自多个不同的来源。这里,我只用了一个参数,所以使用@ValueSource很方便。@EmptySource和@NullSource分别表示你要在要运行的值列表中添加一个空字符串和一个空值(如果你使用这两个值,你可以把它们组合在一起,如上所示)。还有其他多个值源,比如@EnumSource和@ArgumentsSource(一种自定义值提供者)。如果你需要一个以上的参数,也可以使用@MethodSource或@CsvSource。

在JUnit 5中添加的另一个测试类型是@RepeatedTest,在这里,一个测试被重复指定次数的测试。

最后还是建议大家参考一下:

网络:

小讯
上一篇 2025-05-22 07:14
下一篇 2025-04-20 10:16

相关推荐

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