junit 测试似有方法_JUnit 5.6的新功能让测试变得更加简单

本文介绍了JUnit 5.6的新功能,包括如何定义测试执行顺序、设置超时限制、执行条件以及并行测试。通过示例展示了@Order、@TestMethodOrder、@Timeout注解的用法,以及如何通过系统属性和注解控制测试执行的条件。文章还提及了JUnit 5的模块化和并行执行测试的实验性功能。
摘要由CSDN通过智能技术生成

dc7409be327ac26ef522f3c5e6d52f8b.png

作者 | Mert Çalışkan
译者 | IT外文选刊

Unit 5.6的新功能让测试变得更加简单

定义测试执行顺序和并行运行测试的能力等新功能使其成为一个重要的版本。

JUnit,这个被广泛使用的Java单元测试框架,在2017年的时候,JUnit 5有了一个重要的里程碑式的发布,在4.x版本上进化了10年后,JUnit 5.0.0大版本发布后,JUnit团队制定了快速的开发节奏,每隔四五个月就会有新的小版本发布;最新的小版本是2020年1月20日的5.6.0,并在3月22日更新到5.6.1。

我将重新审视这个框架,通过代码示例来展示它带来的最新功能。我还在相关功能的描述上标注了”(5.x以来)”,以强调这些功能是在哪个版本中引入框架的。

首先是一个快速的术语定义。JUnit 5由三个独立的模块组成。

  • JUnit平台是在JVM中启动测试框架的基础;它被许多IDE和构建工具所支持。
  • JUnit Jupiter是最新的编程模型,也是JUnit 5测试的TestEngine。
  • 最后,还有JUnit Vintage,它是针对老的JUnit 3和JUnit 4测试的TestEngine。

(编者注:如果你的工具箱里有JUnit 4测试,请阅读Brian McGlauflin的《从JUnit 4迁移到JUnit 5:重要的区别和好处》)

如果你使用的是Maven,可以很容易地添加JUnit 5.6的依赖关系,如Listing 1所示。

Listing 1

<dependency>
    <groupId>org.junit.jupiter</groupId>
    <artifactId>junit-jupiter-api</artifactId>
    <version>5.6.0</version>
    <scope>test</scope>
</dependency>

如果你在使用Gradle,可以添加依赖关系,如Listing 2所示。

Listing 2

testCompile group: 'org.junit.jupiter', name: 'junit-jupiter-api', version: '5.6.0'

下面我们就来说说新功能吧!

定义测试执行的顺序

你可以通过给定的@Order注解(从5.4开始),或者通过自定义顺序,在给定的类的测试方法之间随机定义一个执行顺序。@TestMethodOrder注解(从5.4开始)是一个类级别上的注解,可以实现你想应用的顺序。

根据方法名称以字母数字方式执行测试方法,如Listing 3所示。

Listing 3

@TestMethodOrder(MethodOrderer.Alphanumeric.class)
class OrderedTest {
    

    @Test
    void testC() {
    
        System.out.println("Test C");
    }

    @Test
    void testZ() {
    
        System.out.println("Test Z");
    }

    @Test
    void testA() {
    
        System.out.println("Test A");
    }
}

在Listing 3中,执行顺序如下:testA() -> testC() -> testZ()。

也可以用定义@TestMethodOrder(MethodOrderer.Random.class)来定义一个随机的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值