JUnit自动化单元测试(五):参数化测试
来源:互联网 发布:数据电视怎么调画面 编辑:程序博客网 时间:2024/05/16 07:42
要成为JUnit测试高手必不可少的一项技能就是参数化测试了,现在有一个方法根据不同的参数会有不同的结果,为了测试全面如果把所有可能的情况都逐个写出来测试一遍那未免太low了,此时就可以用参数化测试,举个例子:
package junit.demo;import static org.junit.Assert.assertEquals;import java.util.Arrays;import java.util.List;import org.junit.Test;import org.junit.runner.RunWith;import org.junit.runners.Parameterized;import org.junit.runners.Parameterized.Parameters;@RunWith(Parameterized.class) //声明参数运行器public class ParametersTest { private int first; private int second; /* 构造函数需要的参数会自动从参数列表中依次取出 */ public ParametersTest(int first, int second) { this.first = first; this.second = second; } /* 这里就是参数化测试的关键了 * 通过@Parameters修饰表示该方法是为这次测试提供参数的,默认是构造函数的参数,以集合的形式传入。 * name属性则是一个名字,稍后解释。 * 当然最简单的方法就像这样写就行了 */ @Parameters(name = "{index}: parm({0},{1})") public static List<Object[]> data() { return Arrays.asList(new Object[][] { { 2, 6 }, { 0, 100 }, { -3, 9 } }); } @Test public void test() { assertEquals(second, doSome(first)); } /* 假如这个就是我们要测试的方法: * 如果参数大于零,则返回参数*3; * 如果参数等于零,则返回100; * 如果参数小于零,则返回参数*-3 */ private Object doSome(int first) { if (first > 0) {return first * 3;} if (first == 0) {return 100;} if (first < 0) {return first * -3;} return null; }}
OK,这样测试一下会发现三个测试成功结果
没错,Parameterized.class参数运行器相当于把参数列表里面的数据一次取一组进行测试,通过构造函数实例化将参数放进测试中,我的demo里有三组数据,因此会有三个测试结果。
同时细心的朋友会发现,每个测试结果的显示名字… 没错,就是代码里面提到的参数配置name属性:”{index}”表示集合下标,“{0}”表示第一个参数值,“{1}”表示第二个参数值。很好理解吧。
至此,整个JUnit已经讲解了十分之八,最重要还是在实际运用过程中根据据需要进行单元测试,可能在实际开发中很少有公司会正规的进行单元测试,不过身为一个开发者,没有任何的借口阻挡我们不断学习进取的脚步。
阅读全文
1 0
- JUnit自动化单元测试(五):参数化测试
- Java单元测试进阶之单元测试利器JUnit(测试自动化)
- JUnit自动化单元测试(一):生成测试类
- JUnit自动化单元测试(二):简单测试实例讲解
- JUnit参数化单元测试
- Java单元测试工具:JUnit4(四)——JUnit测试套件使用及参数化设置
- Java单元测试工具:JUnit4(四)——JUnit测试套件使用及参数化设置
- Java单元测试工具:JUnit4(四)——JUnit测试套件使用及参数化设置
- JUnit自动化单元测试(三):各常用注解和测试函数详细讲解
- JUnit自动化单元测试(四):@RunWith测试套件运行器的使用
- Android使用Robotium自动化测试junit生成单元测试结果报告
- junit参数化测试
- junit参数化测试
- 【Web测试专栏】Selenium+JUnit自动化测试方案 (五)
- JUnit单元测试(五)--通过反射测试私有方法
- Java单元测试Junit(五)使用Spring TestContext测试Spring应用
- Java单元测试工具:JUnit4——JUnit测试套件使用及参数化设置
- java 单元测试(回归测试)(junit)
- Future的使用
- 09、vue.js 之自定义指令
- HashMap要点记
- java.lang.IllegalArgumentException: Scrapped or attached views may not be recycled. isScrap:false is
- 数据库事务隔离级别-- 脏读、幻读、不可重复读(清晰解释)
- JUnit自动化单元测试(五):参数化测试
- 菜鸟重新了解C#
- HDU
- [Linux]history命令用法详解
- MyBatis中ResultMap和ResultType的区别
- jq 层级选择器
- 排序算法
- Hadoop基础教程-第5章 YARN:资源调度平台(5.2 YARN参数解读与调优)
- maven-assembly-plugin 打包可执行jar(fat jar)和配置文件与jar同时打包部署