1、Junit参数化测试
作为测试人员,您是否遇到过这样的测试场景?需要测试的方法都是大同小异:代码结构都是相同的,不同的仅仅是测试数据和期望值。为了解决这个问题,您可以采用juint参数化测试。
如:需要测试的方法:
public int add(int a,int b){ return a+b; } |
测试代码
@RunWith(Parameterized.class) //参数化测试的类必须有Parameterized测试运行器修饰 public class AddTest3 { private int input1; private int input2; private int expected; /** *准备数据。数据的准备需要在一个方法中进行,该方法需要满足一定的要求: 1)该方法必须由Parameters注解修饰 2)该方法必须为public static的 3)该方法必须返回Collection类型 4)该方法的名字不做要求 5)该方法没有参数 * @return */ @Parameters @SuppressWarnings("unchecked") public static Collection prepareData(){ Object [][] object = {{-1,-2,-3},{0,2,2},{-1,1,0},{1,2,3}}; return Arrays.asList(object); }
public AddTest3(int input1,int input2,int expected){ this.input1 = input1; this.input2 = input2; this.expected = expected; } @Test public void testAdd(){ Add add = new Add(); int result = add.add(input1, input2); Assert.assertEquals(expected,result); }
} |
测试结果:testAdd测试用例对应准备数据分别被运行了四次,如图: