一、一个简单的测试
编写一个只有一种运算的计算器:
public class Calculator { public static double divide(int dividend, int divisor) { return dividend / divisor; } }
为这个方法编写测试:
public class CalculatorTest { //允许误差 private static final double DELTA = 0.01; @Test public void testAdd() throws Exception { assertEquals(3, Calculator.divide(9, 3), DELTA); } }
这个测试中使用9除以3测试了方法,但是我们希望使用多组数据进行测试,并且不需要编写多个方法,这时候可以使用JUnit的参数化测试。
二、参数化测试
在JUnit中,参数化测试有两种形式,第一种形式是构造函数形式,即JUnit遍历所提供的所有参数调用构造函数并执行测试方法:
//使用Parameterized Runner执行参数化测试 @RunWith(Parameterized.class) public class CalculatorTest { //允许误差 private static final double DELTA = 0.01; private int dividend; private int divisor; private int result; public CalculatorTest(int dividend, int divisor, int result) { this.dividend = dividend; this.divisor = divisor; this.result = result; } // 用@Parameterized.Parameters注解标注该方法是返回所有参数,被注解的方法必须返 // 回装载数组的Iterable对象,同时必须为public,static,当测试执行时,系统会遍历 // 每组参数(数组)调用构造函数并执行测试。 @Parameterized.Parameters public static Iterable<Object[]> getParameters() { return Arrays.asList(new Object[][]{ {9, 3, 3}, {5, 1, 5}, {12, 4, 3} }); } //当执行测试后,该方法会运行3次 @Test public void testDevide throws Exception { assertEquals(result, Calculator.divide(dividend, divisor), DELTA); } }
第二种是变量注入形式,变量的值不通过构造函数初始化,而是通过JUnit注入:
//使用Parameterized Runner执行参数化测试 @RunWith(Parameterized.class) public class CalculatorTest { //允许误差 private static final double DELTA = 0.01; //使用@Parameter标注public变量,JUnit会遍历每组参数进行注入 //注解中的整数参数表示注入参数组中的第几个参数 @Parameter(0) public int dividend; @Parameter(1) public int divisor; @Parameter(2) public int result; // 用@Parameterized.Parameters注解标注该方法是返回所有参数,被注解的方法必须返 // 回装载数组的Iterable对象,同时必须为public,static,当测试执行时,系统会遍历 // 每组参数(数组)调用构造函数并执行测试。 @Parameterized.Parameters public static Iterable<Object[]> getParameters() { return Arrays.asList(new Object[][]{ {9, 3, 3}, {5, 1, 5}, {12, 4, 3} }); } //当执行测试后,该方法会运行3次 @Test public void testDivide() throws Exception { assertEquals(result, Calculator.divide(dividend, divisor), DELTA); } }
相关推荐
junit参数化测试的使用方法,数据驱动:数组,excel
Junit参数化测试的使用方法博客 的源代码
junit4单元测试报错:method initializationerror not found 缺少jar包导致,总共需要三个jar包:junit-4.11.jar,hamcrest-core-1.3.rc2.jar,hamcrest-library-1.3.rc2.jar,都在压缩包里了。
JUnit参数化测试参数化测试是使用不同的值一次又一次地执行相同的测试。 它可以帮助开发人员节省执行相同测试的时间,该测试仅在输入内容和预期结果上有所不同。 ->乘法示例;)
Junit学习笔记,希望有用~~~~~~~~~~~~~~~~~~~~~~
JUnit是一款由Erich Gamma(《设计模式》的作者)和Kent Beck(极限编程的提出者)编写的开源的回归测试框架,供Java编码人员做单元测试之用。当前版本4.1,可以从www.junit.org网站上获得。与早期的JUnit 3相比,...
JUnit4是JUnit框架有史以来的最大改进,其主要目标便是利用Java5的Annotation特性简化测试用例的编写。 先简单解释一下什么是Annotation,这个单词一般是翻译成元数据。元数据是什么?元数据就是描述数据的数据。也...
junit4学习文档,有实例,非常详细,不懂的可以参考
JUnit 4所需system-rules.jar依赖包,主要包含:system-rules-1.16.1.jar,system-rules-1.17.1.jar,system-rules-1.18.0.jar
用于生成测试代码测试用例覆盖率的配置说明。在网上查了不少资料都写的不是很全面,踩了不少的坑!现整理出来,希望对大家有所帮助 。
赠送jar包:junit-jupiter-engine-5.8.2.jar; 赠送原API文档:junit-jupiter-engine-5.8.2-javadoc.jar; 赠送源代码:junit-jupiter-engine-5.8.2-sources.jar; 赠送Maven依赖信息文件:junit-jupiter-engine-...
这是一个junit4测试的jar包,copy进去就可用
以一个简单的DEMO介绍如何在Eclipse下使用JUnit4。供初次接触JUnit的同学学习
junit4测试源码,看浪曦JUNIT4笔记
Junit4单元测试个人笔记Junit4单元测试个人笔记Junit4单元测试个人笔记
本人小白,开始学习Android,记录自己的错误瞬间,大神不要喷我,哈哈! 安装好android studio后,测试并创建了一个HelloWord project,按照提示一步一步设置完成后,发现要下载一些gradle resource,结果下载了一夜...
Junit学习笔记和课件,欢迎学习爱好者下载资源,共同学习。。
junit-vintage-engine-5.6.2.jarjunit-vintage-engine-5.6.2.jarjunit-vintage-engine-5.6.2.jar
现在的版本都4.3.1,3.8.1的感觉好象不好找,虽然www.junit.org能够找到,但对我们这种英语不好的来说,还是不好找,再说了,现在好多的教程都是以3.8.1来写的,所以在这里把我找到的3.8.1传上来供大家以后下载 博文链接:...
Myeclipse中的JUnit测试详细