JUnit 5 –参数化测试

本文是关于JUnit 5系列的一部分,专注于参数化测试。介绍了如何使用JUnit 5进行参数化测试,包括设置依赖、测试名称、参数来源、转换器等,还探讨了如何创建自定义参数来源和转换器。文章强调了参数化测试在JUnit 5中的重要性和灵活性。
摘要由CSDN通过智能技术生成

JUnit 5令人印象深刻,尤其是当您深入研究扩展模型体系结构时 。 但是从表面上讲,编写测试的地方,开发的过程比革命的过程更具进化性 – JUnit 4上没有杀手级功能吗? 幸运的是,至少有一个:参数化测试。 JUnit 5对参数化测试方法具有本机支持,并且具有允许使用同一主题的第三方变体的扩展点。 在本文中,我们将研究如何编写参数化测试-创建扩展将留待将来使用。

总览

这篇文章是有关JUnit 5的系列文章的一部分:

本系列基于预发行版本Milestone 4,并且在发布新的里程碑或GA版本时会进行更新。 另一个很好的来源是《 JUnit 5用户指南》 。 您可以在GitHub上找到所有代码示例。

在整个这篇文章中,我将大量使用terms 参数和自变量 ,其含义并不相同。 根据维基百科

术语参数通常用于指代在函数定义中找到的变量,而参数指代传递的实际输入。

您好,参数化世界

参数化测试入门非常容易,但是在开始乐趣之前,您必须向项目添加以下依赖项:

  • 群组ID :org.junit.jupiter
  • 工件ID :junit-jupiter-params
  • 版本 :5.0.0-M4

然后,通过在@ParameterizedTest而不是@Test上声明带有参数和拍击的测试方法开始:

@ParameterizedTest
// something's missing - where does `word` come from?
void parameterizedTest(String word) {
    assertNotNull(word);
}

看起来不完整– JUnit如何知道参数字应采用哪些参数? 好吧,因为您为其定义了零参数,所以该方法将被执行零次,并且实际上JUnit报告了该方法的Empty测试套件。

为了使事情发生,您需要提供参数,您可以从中选择各种来源。 可以说,最简单的方法是@ValueSource:

@ParameterizedTest
@ValueSource(strings = { "Hello", "JUnit" })
void withValueSource(String word) {
    assertNotNull(word);
}

确实,现在测试执行了两次:一次是“ Hello”,一次是“ JUnit”。 在IntelliJ中,如下所示:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值