Junit4进行参数化测试
来源:互联网 发布:智能自动化 编程技术 编辑:程序博客网 时间:2024/06/05 01:10
原文来自:http://www.cnblogs.com/byron0918/p/4801152.html
@RunWith, 当类被@RunWith注解修饰,或者类继承了一个被该注解修饰的类,JUnit将会使用这个注解所指明的运行器(runner)来运行测试,而不是JUnit默认的运行器。
要进行参数化测试,需要在类上面指定如下的运行器:
@RunWith (Parameterized.class)
然后,在提供数据的方法上加上一个@Parameters注解,这个方法必须是静态static的,并且返回一个集合Collection。
在测试类的构造方法中为各个参数赋值,(构造方法是由JUnit调用的),最后编写测试类,它会根据参数的组数来运行测试多次。
注意:必须要为类的所有字段赋值,不管你是不是都用到!否则,Junit会出错。
JUnit4中参数化测试要点: 1. 测试类必须由Parameterized测试运行器修饰 2. 准备数据。数据的准备需要在一个方法中进行,该方法需要满足一定的要求: 1)该方法必须由Parameters注解修饰 2)该方法必须为public static的 3)该方法必须返回Collection类型 4)该方法的名字不做要求 5)该方法没有参数
public class Add {
public int add(int input1, int input2) {
return input1 + input2;
}
}
package org.test; import java.util.Arrays; import java.util.Collection; import org.junit.Assert; import org.junit.Test; import org.junit.runner.RunWith; import org.junit.runners.Parameterized; import org.junit.runners.Parameterized.Parameters; /** * 参数化测试的类必须有Parameterized测试运行器修饰 * */ @RunWith(Parameterized.class) public class AddTest3 { private int input1; private int input2; private int expected; /** * 准备数据。数据的准备需要在一个方法中进行,该方法需要满足一定的要求: 1)该方法必须由Parameters注解修饰 2)该方法必须为public static的 3)该方法必须返回Collection类型 4)该方法的名字不做要求 5)该方法没有参数 * @return */ @Parameters @SuppressWarnings("unchecked") public static Collection prepareData(){ Object [][] bject = {{-1,-2,-3},{0,2,2},{-1,1,0},{1,2,3}}; return Arrays.asList(object); } public AddTest3(int input1,int input2,int expected){ this.input1 = input1; this.input2 = input2; this.expected = expected; } @Test public void testAdd(){ Add add = new Add(); int result = add.add(input1, input2); Assert.assertEquals(expected,result); } }
注:在测试的时候,例如我,在测试函数的时候,单独测试一个方法,而不是将一个类中的所有的方法进行测试,而在参数化测试过程中,使用上面的测试方法,一直不能通过,到后来没有办法了,运行了整个测试类,代码通过了,回头一想也也确实这么回事,这个参数化方法测试函数需要上面的参数,而单独运行一个函数的话就无法获取上面的变量。所有在测试参数化测试用例的时候,要运行整个测试类。
本文根据http://www.cnblogs.com/mengdd/archive/2013/04/13/3019336.html和http://www.51testing.com/html/88/377588-817359.html整理而来。
- Junit4进行参数化测试
- 用JUnit4进行参数化测试
- JUnit4参数化测试
- JUnit4参数化测试
- Junit4参数化测试
- junit4中的参数化测试
- JUnit4中参数化测试
- junit4做参数化测试
- selenium+junit4 参数化测试
- 四、Junit4 参数化测试
- [java]junit4的参数化测试
- 转载:JUnit4的参数化测试和打包测试
- Spring+Junit4进行接口测试
- Spring+Junit4进行接口测试
- SpringTest+Junit4框架进行测试
- Junit4 参数化测试 判断三角形的例子
- Junit4参数化设置以及测试套件使用
- JUnit4参数测试与时间测试
- 反汇编分析之:虚函数,虚表,多态
- Linux(CentOS 7_x64位)系统下安装DOCK6.8
- 沈阳网络赛小结
- 利用ffmpeg批量转码视频
- 由于GIL,Python想做多任务,最好在多核上用多进程方式实现
- Junit4进行参数化测试
- CentOS 7 安装JDK8、Tomcat8并设置tomcat服务开机自启
- Redis(一)
- HDU-6195 cable cable cable(规律)
- ICPC2017网络赛(沈阳)1005&HDU6198 number (矩阵+快速幂)
- 加载网页和选择工资
- 进程、线程、协程
- 标准I/O库和系统调用区别(转载)
- 【Socket编程】Python实现简易Web服务器