2011-04-30 145 views
1

如何測試與參數測試下面的方法使用JUnitParamterized測試使用JUnit

public class Math { 
    public static int add(int a, int b) { 
     return a + b; 
    } 
} 

我想知道如何使用JUnit參數測試將實施以測試這種方法,當我想測試一下10個不同的參數。

回答

5

測試類必須具有註釋@RunWith(Parameterized.class)和函數返回一個Collection<Object[]>應當標明@Parameters和構造函數接收輸入和預期輸出(一個或多個)

API:http://junit.sourceforge.net/javadoc/org/junit/runners/Parameterized.html

@RunWith(Parameterized.class) 
public class AddTest { 
     @Parameters 
     public static Collection<Object[]> data() { 
       return Arrays.asList(new Object[][] { 
           { { 0, 0, 0 }, { 1, 1 ,2}, 
            { 2, 1, 3 }, { 3, 2, 5 }, 
            { 4, 3, 7 }, { 5, 5, 10 }, 
            { 6, 8, 14 } } }); 
     } 

     private int input1; 
     private int input2; 

     private int sum; 

     public AddTest(int input1, int input2, int sum) { 
       this.input1= input1; 
       this.input2= input2; 
       this.sum = sum; 
     } 

     @Test 
     public void test() { 

       assertEquals(sum, Math.Add(input1,input2)); 
     } 
} 
0

最近我開始了zohhak項目。我相信它比@Parametrized要乾淨得多:

@TestWith({ 
    "25 USD, 7", 
    "38 GBP, 2", 
    "null, 0" 
}) 
public void testMethod(Money money, int anotherParameter) { 
    ... 
}