對於一個方法須要進行多種場景進行測試時,能夠經過參數化測試減小測試的工做量。用法以下:java
1 package junit.util; 2 3 import static org.junit.Assert.assertEquals; 4 5 import java.util.Arrays; 6 import java.util.Collection; 7 8 import org.junit.Test; 9 import org.junit.runner.RunWith; 10 import org.junit.runners.Parameterized; 11 import org.junit.runners.Parameterized.Parameters; 12 13 @RunWith(Parameterized.class) 14 public class ParameterTest { 15 16 /** 17 * 一、更改測試運行器爲RunWith(Parameterized.class) 18 * 二、聲明變量用來存放預期值與結果值 19 * 三、聲明一個返回值爲Collection的公共靜態方法,並使用@Parameters進行修飾 20 * 四、位測試類聲明一個帶有參數的公共構造方法,並在其中爲聲明變量賦值 21 */ 22 23 int except; //用來存儲預期結果 24 int input1; //用來存儲第一個輸入參數 25 int input2; //用來存儲第二個輸入參數 26 27 @Parameters 28 public static Collection<Object[]> initTestData(){ 29 return Arrays.asList( 30 new Object[][]{ 31 {3,1,2}, 32 {10,5,5}, 33 {6,4,2}, 34 {7,3,4}} 35 ); 36 } 37 38 public ParameterTest(int except,int input1,int input2){ 39 this.except = except; 40 this.input1 = input1; 41 this.input2 = input2; 42 } 43 44 45 46 47 48 @Test 49 public void testAdd() { 50 assertEquals(except, new Claculate().add(input1, input2)); 51 } 52 53 }