junit4中的参数化测试

来源:互联网 发布:ibm服务器监控软件 编辑:程序博客网 时间:2024/05/20 04:11
 
package com.zlp.test;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 com.zlp.utils.Calculation;@RunWith(Parameterized.class)public class ParameterTest {private static Calculation calc;private int expceted;private int input1;private int input2;@Beforepublic void init(){calc = new Calculation();}@Parameterspublic static Collection prepareData(){Object[][] object = {{3,1,2},{4,2,2},{-5,-7,2},{0,-4,4}};return Arrays.asList(object);}public ParameterTest(int expceted, int input1, int input2) {this.expceted = expceted;this.input1 = input1;this.input2 = input2;}@Testpublic void testAdd(){assertEquals(this.expceted, calc.add(input1, input2));}}


注意点:

在类的声明处声明@RunWith(Parameterized.class)表示该类不使用默认的测试运行器,在提供的方法中要设置@Parameters方法来修饰

同时为各个参数赋值,最后编写测试类

以上示例测试能全部通过,如果改掉object的值如{4,1,2}将会出错。

所有的运行器都继承自org.junit.runner.Runner