文档章节

使用JUnitParams简化Parameterized tests

go4it
 go4it
发布于 2017/07/25 22:45
字数 247
阅读 13
收藏 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
粉丝 51
博文 698
码字总数 499786
作品 0
深圳
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
777
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.3K
13
ASMSupport教程4.8 生成逻辑运算操作

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

Erroooooor
2013/07/04
0
1
[Erlang 0037] Erlang Parameterized Module

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

唐玄奘
2017/12/03
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

java并发备忘

不安全的“先检查后执行”,代码形式如下: if(条件满足){ //这里容易出现线程安全问题//doSomething}else{//doOther} 读取-修改-写入 原子操作:使用CAS技术,即首先从V中读取...

Funcy1122
今天
0
0
SpringBoot2.0 停机

最近新建了个SpringBoot2.0的项目,因为原来一直使用的是传统的Tomcat部署war包的形式,所以这次SpringBoot内置Tomcat部署jar包的时候遇到了很多问题。其中一个就是因为没有外置的Tomcat容器...

Canaan_
昨天
0
1
Confluence 6 外部参考

一个外部参考的意思是任何站点链接到你 Confluence 的实例。任何时候当 Confluence 的用户单击这个外部链接的时候,Confluence 可以记录这次单击为参考。 在默认的情况下,外部链接的参考链接...

honeymose
昨天
0
0
Android中的设计模式之抽象工厂模式

参考 《设计模式解析》 第十一章 Abstract Factory模式 《设计模式:可复用面向对象软件的基础 》3.1 Abstract Factory 抽象工厂 对象创建型模式 《Android源码设计模式解析与实战》第6章 创...

newtrek
昨天
0
0
Redis | 地理空间(GEO)的一个坑

Redis的地理空间(Geo)是个好东西,轻轻松松的就可以把地图描点的问题处理了, 最近却遇到一个坑...Redis采用的Msater-Slave模式, 运用GEORADIUS在salve读取对应的数据,新增了从节点但是从不返...

云迹
昨天
1
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部