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:

 

评分:0

我来说两句

Open Toolbar