JUnit4中參數(shù)化測試要點:
1. 測試類必須由Parameterized測試運行器修飾
2. 準備數(shù)據(jù)。數(shù)據(jù)的準備需要在一個方法中進行,該方法需要滿足一定的要求:
1)該方法必須由Parameters注解修飾
2)該方法必須為public static的
3)該方法必須返回Collection類型
4)該方法的名字不做要求
5)該方法沒有參數(shù)
如:
測試方法:
public int add(int a,int b){
return a+b;
}
測試代碼:
package org.test;
import java.util.Arrays;
import java.util.Collection;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
import org.junit.runners.Parameterized.Parameters;
/**
* 參數(shù)化測試的類必須有Parameterized測試運行器修飾
*
*/
@RunWith(Parameterized.class)
public class AddTest3 {
private int input1;
private int input2;
private int expected;
/**
* 準備數(shù)據(jù)。數(shù)據(jù)的準備需要在一個方法中進行,該方法需要滿足一定的要求:
1)該方法必須由Parameters注解修飾
2)該方法必須為public static的
3)該方法必須返回Collection類型
4)該方法的名字不做要求
5)該方法沒有參數(shù)
* @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);
}
}