文档章节

使用JUnitParams简化Parameterized tests

go4it
 go4it
发布于 2017/07/25 22:45
字数 247
阅读 13
收藏 0
点赞 0
评论 0

junit4的Parameterized tests的使用方法太过费劲了,这里介绍下如何使用JUnitParams来简化Parameterized tests。

junit4原生的Parameterized tests实例

@RunWith(Parameterized.class)
public class FibonacciTest {
    @Parameters
    public static Collection<Object[]> data() {
        return Arrays.asList(new Object[][] {     
                 { 0, 0 }, { 1, 1 }, { 2, 1 }, { 3, 2 }, { 4, 3 }, { 5, 5 }, { 6, 8 }  
           });
    }

    private int fInput;

    private int fExpected;

    public FibonacciTest(int input, int expected) {
        fInput= input;
        fExpected= expected;
    }

    @Test
    public void test() {
        assertEquals(fExpected, Fibonacci.compute(fInput));
    }
}

JUnitParams的使用

maven

<dependency>
  <groupId>pl.pragmatists</groupId>
  <artifactId>JUnitParams</artifactId>
  <version>1.1.0</version>
  <scope>test</scope>
</dependency>

实例

@RunWith(JUnitParamsRunner.class)
public class PersonTest {

  @Test
  @Parameters({"17, false", 
               "22, true" })
  public void personIsAdult(int age, boolean valid) throws Exception {
    assertThat(new Person(age).isAdult(), is(valid));
  }
  
}

junit5的更新

当然junit5也对Parameterized tests的使用进行简化,如下:

@ParameterizedTest
@EnumSource(value = TimeUnit.class, names = { "DAYS", "HOURS" })
void testWithEnumSourceInclude(TimeUnit timeUnit) {
    assertTrue(EnumSet.of(TimeUnit.DAYS, TimeUnit.HOURS).contains(timeUnit));
}

小结

如果还是使用junit5之前的版本,那么可以尝试使用JUnitParams来简化Parameterized tests。如果你已经使用junit5,那么恭喜你,可以不用额外引入JUnitParams就可以方便地进行Parameterized tests。

doc

© 著作权归作者所有

共有 人打赏支持
go4it
粉丝 50
博文 642
码字总数 434106
作品 0
深圳
Feed4TestNG 1.0 发布

Feed4TestNG 使得可以编写参数化的 TestNG 测试用例。 示例代码: public class LoginTest extends FeedTest { @Test(dataProvider = "feeder") @Source("userlogin.csv") public void test......

红薯 ⋅ 2011/09/17 ⋅ 0

Rails 5.1.0.rc1 发布,开源网络应用框架

Rails 5.1.0.rc1 发布了。在社区的帮助下,Rails 5.1 终于发布了,并且有超过 380 个提交。 参阅 Rails 5.1 发行说明了解更多 Highlights in Rails 5.1: Yarn Support Optional Webpack sup...

局长 ⋅ 2017/03/21 ⋅ 1

Gson 使用简介

这个网页通过正常的手段是访问不到的, 为了大家能够方便的学习Gson。 因此将原文应用到此。 Overview Gson is a Java library that can be used to convert Java Objects into their JSON r...

墨梅 ⋅ 2014/04/13 ⋅ 0

Google的JSON类库 Gson开发者指南

由于 site.google.com 被墙,本人特意翻墙出去扒了分 User Guide 回来,不过是英文的。 Gson User Guide Contents 1 Authors: Inderjeet Singh, Joel Leitch 1.1 Overview 1.2 Goals for Gs......

红薯 ⋅ 2009/12/31 ⋅ 13

ASMSupport教程4.8 生成逻辑运算操作

在java中有以下逻辑运算符: &&:条件与 ||:条件或 & : 布尔型的逻辑与 | : 布尔型的逻辑或 ^ : 布尔型的逻辑异或 ! : 非操作 那么接下来我们将些段例子来看看各种逻辑运算的效果,并且我们...

Erroooooor ⋅ 2013/07/04 ⋅ 1

Spring、Spring Boot 和 TestNG 测试指南 ( 6 )

原文出处:chanjarster Spring Testing Framework提供了Spring MVC Test Framework,能够很方便的来测试Controller。同时Spring Boot也提供了Auto-configured Spring MVC tests更进一步简化了...

chanjarster ⋅ 2017/12/11 ⋅ 0

[Erlang 0037] Erlang Parameterized Module

把Parameterized Module作为一个Erlang的语法特性而不扯到OOP上去,可能更好理解: ) 本文回答Erlang Parameterized Module是什么?有什么用?怎么实现的?我们能不能用?什么时候使用? 和很多人一...

唐玄奘 ⋅ 2017/12/03 ⋅ 0

ASMSupport教程4.5 在Class中生成算术运算符

ASMSupport教程4.5 在Class中生成算术运算符 这节我们开始介绍ASMSupport如何生成算数运算符(+-*/%),依旧先看我们需要生成的java代码: package generated.operators; import java.io.PrintS...

Erroooooor ⋅ 2013/07/02 ⋅ 0

Python下访问MYSQL的方法总结

在Python下做过服务器开发的小伙伴对ORM技术一定都不陌生,ORM(Object-Relational Mapping),将关系数据库的表结构映射到对象上,隐藏了数据库操作背后的细节,简化了对数据操作的写法,使...

zwgdft ⋅ 2016/10/15 ⋅ 0

java8-Beh2param

java8更加高效,功能,工具更多 stream processing 抽象 并行更简单 method reference lambdas Predicate default methods Optional 一. Beh2param 行为参数化 eg:农夫想要找出一堆有特点的...

writeademo ⋅ 06/12 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

收集自网络的wordpress 分页导航的代码教程(全网最全版)

wordpress 分页导航是用来切换文章的一个功能,添加了 wordpress 分页导航后,用户即可自由到达指定的页面数浏览分类文章,而这样的一个很简单功能却有很多朋友在用插件:WP-PageNavi,插件的...

Rhymo-Wu ⋅ 39分钟前 ⋅ 0

微服务 WildFly Swarm 入门

Hello World 就像前面章节中的其他框架一样,我们希望添加一些基本的 Hello-world 功能,然后在其上逐步添加更多的功能。让我们从在我们的项目中创建一个 HolaResources 开始。您可以使用您的...

woshixin ⋅ 46分钟前 ⋅ 0

Maven的安装和Eclipse的配置

1. 下载Maven 下载地址 2. 解压压缩包,放到自己习惯的硬盘中 此处我将其放到了 D:\Tools 目录下。 3. 配置环境变量 右键此电脑 -> 属性 -> 高级系统设置 -> 环境变量。 在系统变量中新建,变...

影狼 ⋅ 53分钟前 ⋅ 0

python pip使用国内镜像的方法

国内源 清华:https://pypi.tuna.tsinghua.edu.cn/simple 阿里云:http://mirrors.aliyun.com/pypi/simple/ 中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/ 华中理工大学:http://......

良言 ⋅ 54分钟前 ⋅ 0

对于url变化的spa应该如何使用微信jssdk

使用vue单页面碰上微信jssdk config验证失败的坑。第一次成功 之后切换页面全部失败,找到了解决方法,第一次验证成功后保存验证信息 切换页面时验证信息直接拿来用,加一个wx.error() 失败时...

孙冠峰 ⋅ 58分钟前 ⋅ 0

Spring Cloud Gateway 一般集成

SCF发布,带来很多新东西,不过少了点教程,打开方式又和以前的不一样,比如这个SCG,压根就没有入门指导,所以这里写一个,以备后用。 一、集成 pom.xml <dependency> <groupI...

kut ⋅ 今天 ⋅ 0

建造模式

《JAVA与模式》之建造模式

Cobbage ⋅ 今天 ⋅ 0

WePY框架开发的小程序如何在微信web开发者工具中运行起来

一、首先需要安装node.js,安装步骤如下: 首先下载安装包 https://nodejs.org/en/download/ 点击下载相应的zip版本 然后将文件夹解压到任意目录 比如我这里解压到了:C:\Program Files\node...

Helios51 ⋅ 今天 ⋅ 0

使用EnumSet 代替位域(32)

1、位域(Bit field):使用or 运算将几个常量合并到一个集合中 位操作,可以有效地执行 AND 、OR 这样的位操作 但是 位域比int 常量枚举缺点更多 2、java.util 包里面的EnumSet 类是有效的替...

职业搬砖20年 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部