JUnit,参数化测试
上一篇 /
下一篇 2012-04-20 23:01:17
/ 个人分类:JUnit
JUnit核心对象
Assert 定义测试条件,预期结果与实际结果进行比较,输出相应的信息
测试
测试类
Suite 将测试类归为一组,称为测试集
Runner Runner类用来运行测试
下面的例子是参数化测试,ParameterizedTest.java,当然还要用到之前日志里写的Calculator.java
import static org.junit.Assert.*;
import org.junit.Test;
import java.util.Arrays;
import java.util.Collection;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
import org.junit.runners.Suite;
import org.junit.runner.RunWith;
@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(){
Calculator calc = new Calculator();
assertEquals(expected, calc.add(valueOne, valueTwo), 0);
}
}
运行方式及结果:
E:\junit>java org.junit.runner.JUnitCore ParameterizedTest
JUnit version 4.10
...
Time: 0.016
OK (3 tests)
表明测试通过。
如果预期结果与实际结果不一致,比如将 {2, 1, 1}, 改成{3,1,1} 1+1是不等于3的,那么运行测试就会将测试失败的部分抛出
如下
E:\junit>java org.junit.runner.JUnitCore ParameterizedTest
JUnit version 4.10
.E..
Time: 0.016
There was 1 failure:
1) sum[0](ParameterizedTest)
java.lang.AssertionError: expected:<3.0> but was:<2.0>
收藏
举报
TAG: