序,Junit测试是单元测试的一个框架,提供了很多方法,供我们快速开展单元测试。现在就让我们慢慢学习Junit单元测试框架
公共的,包含一个无参构造函数,含有一个或几个测试方法(@Test注释)。没有为测试类定义测试集时,JUnit自动提供一个测试集。
把多个相关测试归入一组,可以使一个测试类,也可以包含多个测试类。
执行测试集的程序,JUnit4提供了一些测试运行器,如下:
|
举一个org.junit.runners.Parameterized的例子:
在这个例子中,可以指定运行器为Parameterized,测运行器的特点是允许你使用不同的参数多次运行同一个测试。
解释:
1 必须使用@RunWith注释,并且Parameterized.class为参数值
2 声明变量
3 提供一个用@Parameters注释的方法
。。。未完待续。
package com; 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.Parameters; import org.junit.runners.Parameterized; @RunWith(value = Parameterized.class)//指定测试运行器 public class ParameterizedTest { private double expected; private double valueOne; private double valueTwo; @Parameters public static Collection<Integer[]> getTestParameters() { return Arrays.asList(new Integer[][] { { 2, 1, 1 }, { 3, 2, 1 }, { 4, 3, 1 } }); } public ParameterizedTest(double expected, double valueOne, double valueTwo) { this.expected = expected; this.valueOne = valueOne; this.valueTwo = valueTwo; } @Test public void sum(){ APP app = new APP(); assertEquals(expected,app.getSum(valueOne, valueTwo),0); System.out.println("--"); } }
org.junit.runner.JUnitCore,可以运行任何测试运行器
JUnitCore决定使用哪个运行器来运行你的测试。
需继承自org.junit.runner.Runner.Runner类
Suite对象其实是一个运行器(Runner),可以执行测试类中所有@Test注释的方法。
测试集还可以嵌套,看下面示例:
//测试类A public class TestCaseA{ @Test public void testA1(){ //omitted } } //测试类B public class TestCaseB{ @Test public void testB1(){ //omitted } } //测试集合A @RunWith(Suite.class) @SuiteClasses({TestCaseA.class}) public class TestSuiteA { } //测试集合B @RunWith(Suite.class) @SuiteClasses({TestCaseB.class}) public class TestSuiteB { } //测试集合,把测试集合A和测试集合B合成为一个大的测试集合 @RunWith(Suite.class) @SuiteClasses({TestSuiteA.class,TestSuiteB.class}) public class MasterTestSuite { }
原文:http://www.cnblogs.com/yaochc/p/4965171.html