软件测试_JUnit+Ant构建自动的单元测试(2)
来源:互联网 发布:农村淘宝召集令 编辑:程序博客网 时间:2024/05/08 17:47
参数化测试
和创建Test Case差不多,不过需要:
为测试类添加@RunWith(Parameterized.class),@RunWith 用来运行套件测试
否则Junit的默认执行无参构造方法,右键直接运行就难了:
java.lang.Exception: Test class should have exactly one public zero-argument constructor
…
创建一个公共的构造函数,用于接受测试数据
这里还是三角形判断方法为例,则参数a、b、c对应三边,result为预期结果
public TestTriangle(Integer a, Integer b, Integer c, Integer result) { this.a = a; this.b = b; this.c = c; this.result = result; }**
创建一个公共的静态方法,带有@Parameters (或@Parameterized.Parameters),它返回一个Collection来作为测试数据集合
这里的顺序和构造方法的参数列表顺序一样,所以依次为a、b、c、result
@Parameterized.Parameters public static Collection primeNumbers() { return Arrays.asList(new Object[][] { { 3, 3, 3, 3 }, { 3, 3, 4, 2 }, { 3, 4, 5, 1 }, { 3, 4, 9, 1 }, { 3, 4, -1, -1 } }); }
为每组测试数据创建一个实例变量,以此创建你的测试用例
所以修改测试方法如下,被测试类也可以作为测试用例的field
/** * Test method for {@link Triangle#judgeTrangle(int, int, int)}. */ @Test public void testJudgeTrangle() { //fail("Not yet implemented"); // TODO System.out.println("Parameterized Number is : " + a +", "+b+", "+c); Triangle t = new Triangle(); assertEquals(this.result, t.judgeTrangle(this.a, this.b, this.c)); }
运行结果
因为{ 3, 4, 9, 1 }这一组的结果(测试为0)和预期的1不一样,所以会有Failure
试过直接在测试方法内测试所有数据,结果覆盖率较低
Ant运行测试
测试用例的测试结果与预期相同时
不相同时
附:完整代码
package test;import static org.junit.Assert.*;import java.util.Arrays;import java.util.Collection;import org.junit.After;import org.junit.AfterClass;import org.junit.Before;import org.junit.BeforeClass;import org.junit.Test;import org.junit.runner.RunWith;import org.junit.runners.Parameterized;import org.junit.runners.Parameterized.Parameters;import test.Triangle;import junit.framework.TestCase;/** * *//** * @author bottomheater Email:1264276009@qq.com * @version 创建时间:2016年6月14日 下午9:06:13 * 类说明 *//** * @author Administrator * */@RunWith(Parameterized.class)public class TestTriangle{ private Integer a; private Integer b; private Integer c; private Integer result; @Parameterized.Parameters public static Collection primeNumbers() { return Arrays.asList(new Object[][] { { 3, 3, 3, 3 }, { 3, 3, 4, 2 }, { 3, 4, 5, 1 }, { 3, 4, 9, 1 }, { 3, 4, -1, -1 } }); } public TestTriangle(Integer a, Integer b, Integer c, Integer result) { this.a = a; this.b = b; this.c = c; this.result = result; } /** * Test method for {@link Triangle#judgeTrangle(int, int, int)}. */ @Test public void testJudgeTrangle() { //fail("Not yet implemented"); // TODO System.out.println("Parameterized Number is : " + a +", "+b+", "+c); Triangle t = new Triangle(); assertEquals(this.result, t.judgeTrangle(this.a, this.b, this.c)); }}
0 0
- 软件测试_JUnit+Ant构建自动的单元测试(2)
- 软件测试_JUnit+Ant构建自动的单元测试(1)
- Java单元测试,测试环境、自动构建脚本
- ant结合junit进行软件自动测试
- 自动构建工具Ant的使用(一)
- 自动构建工具Ant的使用(二)
- 自动构建工具Ant的使用(三)
- 自动构建工具Ant的使用(四)
- 自动构建工具Ant的使用-笔记
- 【java】自动构建工具Ant的学习
- 利用Ant实现项目自动构建测试备份并发布到项目web(2)
- 利用Ant实现项目自动构建测试备份并发布到项目web(2)
- 关于Ant测试构建的问题
- Ant 构建测试工程的脚本
- 软件测试中JMeter和Ant实现自动负载测试
- 软件测试中JMeter和Ant实现自动负载测试
- Ant自动构建脚本!
- ant自动构建
- javascript语言是面向对象还是面向过程?
- 近期面试Android岗的一些想法
- linux下增加字体
- Swift-基础-5
- 自由职业者们,请留意自己的心理和精神健康
- 软件测试_JUnit+Ant构建自动的单元测试(2)
- Swift-基础-6
- NoSQL之Redis---PUB/SUB(订阅与发布)---基本命令
- java异常汇总
- 软件开发不能用建筑开发来比喻
- 帧动画 drawable
- 33. 常用代码
- [leetcode] 【栈】150. Evaluate Reverse Polish Notation
- AngularJs directive-scope双向绑定方法处理-实例2