参数化测试运行器
来源:互联网 发布:mac小技巧 编辑:程序博客网 时间:2024/05/22 14:50
说说使用参数化测试运行器的优缺点
要进行参数化测试,需要在类上面指定如下的运行器:
@RunWith (Parameterized.class)
然后,在提供数据的方法上加上一个@Parameters注解,这个方法必须是静态static的,并且返回一个集合Collection。
优点:在测试类的构造方法中为各个参数赋值,(构造方法是由JUnit调用的),最后编写测试类,它会根据参数的组数来运行测试多次。
缺点:JUnit目前的参数化测试只支持一个@Parameters,要是支持多个就可以匹配多个构造函数,可以实现更多的用例。
例
TestDate1.java
import static org.junit.Assert.*;import java.util.Arrays;import java.util.Collection;import org.junit.Test;import org.junit.runner.RunWith;import org.junit.runners.Parameterized;import org.junit.runners.Parameterized.Parameters; @RunWith(value=Parameterized.class)public class TestDate1 {private int expected;//0表示假,1表示真private int valueYear;private int valueMoon;private int valueDay; public TestDate1(int e,int vy,int vm,int vd){this.expected = e;this.valueYear = vy;this.valueMoon = vm;this.valueDay = vd;}@Parameterspublic static Collection<Integer[]> getTestParameters() {return Arrays.asList(new Integer[][] {{31, 2000, 1, 1},{31, 2000, 3, 1},{31, 2000, 5, 1},{31, 2000, 7, 1},{31, 2000, 8, 1},{31, 2000, 10, 1},{31, 2000, 12, 1},{30, 2001, 4, 1},{30, 2001, 6, 1},{30, 2001, 9, 1},{30, 2001, 11, 1},{28, 2001, 2, 1},{29, 2012, 2, 1},{0, 2012, 13, 1}});}@Testpublic void testgetNumberOfDaysInMonth(){Date d =new Date(valueYear,valueMoon,valueDay);assertEquals(expected, d.getNumberOfDaysInMonth());}}
TestDate2.java
import static org.junit.Assert.*;import java.util.Arrays;import java.util.Collection;import org.junit.Test;import org.junit.runner.RunWith;import org.junit.runners.Parameterized;import org.junit.runners.Parameterized.Parameters; @RunWith(value=Parameterized.class)public class TestDate2 {private int expected;//0表示假,1表示真private int valueYear;private int valueMoon;private int valueDay;public TestDate2(int e,int vy,int vm,int vd){this.expected = e;this.valueYear = vy;this.valueMoon = vm;this.valueDay = vd;} @Parameterspublic static Collection<Integer[]> getTestParameters() {return Arrays.asList(new Integer[][] {{1, 2000, 1, 1},{0, 2001, 1, 1},{1, 2012, 1, 1},{0, 1800, 1, 1}});}@Testpublic void testisLeapYear(){Date d =new Date(valueYear,valueMoon,valueDay);boolean e;//把0,1转换为boolean值if(expected == 0)e=false;elsee=true;assertEquals(e, d.isLeapYear());} }
TestSuite.java
import org.junit.runner.RunWith;import org.junit.runners.Suite; @RunWith(Suite.class)// 指定运行器@Suite.SuiteClasses({ TestDate1.class, TestDate2.class })// 指定要测试的类public class TestSuite {}
0 0
- 参数化测试运行器
- JUnit 运行参数化测试简单入门
- JUNIT(Parameterized运行参数化测试)
- 参数化测试
- JUnit4参数化测试
- testng参数化测试
- TestNG 参数化测试
- JUnit4参数化测试
- junit参数化测试
- Junit4参数化测试
- junit参数化测试
- 创建参数化测试
- 带参数动态条件道指令运行测试
- junit 4 测试运行器
- Apache JMeter测试之参数化测试
- LoadRunner 测试参数化属性
- junit4中的参数化测试
- JUnit4中参数化测试
- 提高篇第16-19课第三题
- 深入浅出之正则表达式(一)
- 窗函数
- 前端之路开山篇
- 深入浅出之正则表达式(二)
- 参数化测试运行器
- C++中placement new操作符
- hdu 4000 Fruit Ninja(树状数组)
- 【MFC】如何在mfc窗口程序中调用控制台
- 创建数据字典的几个要素
- 傅里叶变换及逆变换
- Android SDK在线下载安装问题--**Image项总是安装错误
- Windows编程基础一:Windows应用的基本概念
- 驱动级别 进程保护