参数化测试代码如下所示;
package xw.calculatortest;
import static org.junit.Assert.*;
import java.util.Arrays;
import java.util.Collection;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import xw.calculator.Calculator;
@RunWith(Parameterized.class)
public class SquareTest {
private static Calculator calculator = new Calculator();
private int param;
private int result;
@Parameters
public static Collection data() {//定义测试数据的集合
return Arrays.asList(new Object[][] { { 2, 4 }, { 0, 0 }, { -3, 9 }, });
}
// 构造函数,对变量进行初始化,参数的顺序与数据集成的顺序相关
public SquareTest(int param, int result) {
this.param = param;
this.result = result;
}
// 复原操作,表明对每个Test方法测试以后都会进行这个方法操作。
@Before
public void setUp() throws Exception {
calculator.clear();// 结果清零
}
@Test
public void testSquare() {
calculator.square(param);
assertEquals(result, calculator.getResult());
}
}
打包测试
考虑另外一种场景,如果一个项目中有许多个测试类,一个一个去运行会非常繁琐,这个时候可以考虑使用打包测试。将所有需要运行的测试类集中起来,一次性的运行完毕,大大的方便了我们的测试工作。
右键Calculator类,新建一个JUnit Test Suite,如下图所示。
然后选择需要打包测试的测试类,如下图所示:
打包测试类叫做AllTests,需要打包测试的三个测试类是CalculatorTest,SquareTest和test。点击Finish完成打包测试,生成的打包测试类大吗如下:
package xw.calculatortest;
import org.junit.runner.RunWith;
import org.junit.runners.Suite;
import org.junit.runners.Suite.SuiteClasses;
@RunWith(Suite.class)
@SuiteClasses({ CalculatorTest.class, SquareTest.class, test.class })
public class AllTests {
}
运行结果如下:
原文出处:http://www.cnblogs.com/xwdreamer