junit数据驱动测试_JUnit 5-早期测试驱动器-第2部分

本文介绍了JUnit 5的第二部分,包括如何运行测试,JUnit 4与JUnit 5的集成,以及JUnit 5引入的新功能如嵌套测试、命名测试和参数注入。在JUnit 5中,可以使用@Nested注解进行嵌套测试组织,使用@DisplayName自定义测试显示名称,以及使用参数注入扩展测试能力。此外,文章还探讨了JUnit的扩展性,如自定义注释和扩展点。
摘要由CSDN通过智能技术生成

junit数据驱动测试

重要要点

  • JUnit 5即将发布!
  • 它经过改进的API和扩展模型大大改善了“ JUnit工具”。
  • 模块化体系结构使“ JUnit平台”可用于其他测试框架。
  • 这是一个完整的重写,但可以在相同的代码库中与较旧的JUnit版本共存

JUnit 5的第1部分中 ,我们了解了如何设置JUnit并开始编写测试,并且看到了表面上发生了什么变化。 我们还讨论了重写的需求以及新体系结构如何将JUnit PlatformJUnit Jupiter分开。

在第二部分中,我们将仔细研究如何运行测试以及JUnit 5为我们的开发人员带来的一些非常酷的新功能。

运行测试

JUnit Jupiter测试可以作为JUnit 4运行的一部分运行,也可以与新的JUnit 5基础架构一起运行。

JUnit 4的一部分

还记得五秒钟的设置吗? 它使用了以下工件:

org.junit.jupiter:junit-jupiter-api
org.junit.jupiter:junit-jupiter-engine
org.junit.platform:junit-platform-runner

正如我们在第一部分中讨论的那样,我们需要使用junit-jupiter-api来编写测试,并需要junit-jupiter-engine来发现并运行它们。 最后一块junit-platform-runner包含类JUnitPlatform ,它是JUnit 4接口Runner的实现 ,它基本上只是告诉引擎运行测试。 用作@RunWith(JUnitPlatform.class)时,它将作为JUnit 4运行的一部分执行我们的新测试。 请注意,要使此方法起作用,该类必须是常规的JUnit 4测试类,即,它必须遵守所选工具所要求的约定(例如Maven的命名约定 ),并且必须是公共的。 使用这种方法,我们的JUnit Jupiter测试将在具有JUnit 4集成的任何工具下运行。

但是,我们可以做一点改进。 运行器评估@SelectPackages批注,因此可以用于运行包中的所有测试:

package com.infoq.junit5;

import org.junit.platform.runner.JUnitPlatform;
import org.junit.platform.runner.SelectPackages;
import org.junit.runner.RunWith;

@RunWith(JUnitPlatform.class)
@SelectPackages({ "com.infoq.junit5" })
public class TestWithJUnit5 { }

在这里,包被解释为层次结构,因此将执行以com.infoq.junit5开头的所有包中的所有测试。 由于这些测试是由JUnit Platform运行程序发现的(而不是工具的JUnit 4集成),因此不再需要将它们公开。

一个警告:如果我们使用一种利用新架构的机制(我们将在第二秒讨论),并且该机制包含一个JUnit 4引擎,则这些测试将执行两次:在JUnit 4运行期间(由于运行器,我们进行了一次测试)使用@RunWith ),并在JUnit 5运行期间再次应用。

使用JUnit 5

现在让我们看一下如何使完整的JUnit 5机制运行。 它将使用junit-platform-launcher提供的API 并捆绑许多引擎来发现和运行测试。 目前,唯一相关的引擎是Jupiter(在junit-jupiter-engine中 )和JUnit 4(在junit-vintage-engine中 )。

集成开发环境

以来 2016.2 IntelliJ IDEA具有基本 JUnit 5支持 。 追赶一个移动的目标还不是很完美,但是它可以正常工作并使新的JUnit玩起来更加容易。

Eclipse团队是

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值