文档章节

使用JUnitParams简化Parameterized tests

go4it
 go4it
发布于 2017/07/25 22:45
字数 247
阅读 15
收藏 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
粉丝 70
博文 819
码字总数 691271
作品 0
深圳
私信 提问
2017 年不容错过的 10+ 个开源 Java 库

向阅读此文的读者问好, 此文的灵感来自于 Andres Almiray 的工作。 这些开源库非常棒,我已经将它们整理成参考清单,附上简短的功能清单连同案例一同分享。 请欣赏! Guice Guice(音同“j...

oschina
2017/02/21
7.1K
12
Feed4TestNG 1.0 发布

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

红薯
2011/09/17
1K
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
835
1
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
11.5K
13
ASMSupport教程4.8 生成逻辑运算操作

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

Erroooooor
2013/07/04
0
1

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周五乱弹 —— 这就是不要女朋友的理由

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @狄安娜的猫 :分享丁家鑫的单曲《丁家鑫 - 克罗地亚狂想曲 - 古筝remix》 《丁家鑫 - 克罗地亚狂想曲 - 古筝remix》 手机党少年们想听歌,请...

小小编辑
22分钟前
124
6
CentOS配置Tomcat监听80端口,虚拟主机

Tomcat更改默认端口为80 更改的配置文件是: /usr/local/tomcat/conf/server.xml [root@test-a ~]# vim /usr/local/tomcat/conf/server.xml # 找到 Connector port="8080" protocol="HTTP/1......

野雪球
今天
5
0
《稻盛和夫经营学》读后感心得体会3180字范文

《稻盛和夫经营学》读后感心得体会3180字范文: 一代日本经营之圣稻盛和夫凭借刻苦勤奋的精神以及深植于佛教的商业道德准则,成为了“佛系”企业家的代表人物。在《稻盛和夫经营学》“领导人...

原创小博客
今天
4
0
java框架学习日志-5(常见的依赖注入)

依赖注入(dependency injection) 之前提到控制反转(Inversion of Control)也叫依赖注入,它们其实是一个东西,只是看的角度不同,这章详细说一下依赖注入。 依赖——指bean对象创建依赖于...

白话
今天
5
0
红外接收器驱动开发

背景:使用系统的红外遥控软件没有反应,然后以为自己接线错误,反复测试,结果烧坏了一个红外接收器,信号主板没有问题。所以自己开发了一个红外接收器的python驱动。接线参见https://my.os...

mbzhong
今天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部