使用理論進行單元測試

來自 JavaDoc

Theories 執行器允許針對無限資料點集的子集測試某個功能。

執行理論

import org.junit.experimental.theories.Theories;
import org.junit.experimental.theories.Theory;
import org.junit.runner.RunWith;

@RunWith(Theories.class)
public class FixturesTest {

    @Theory
    public void theory(){
        //...some asserts
    }
}

@Theory 註釋的方法將被 Theories runner 讀作理論。

@DataPoint 註釋

@RunWith(Theories.class)
public class FixturesTest {

    @DataPoint
    public static String dataPoint1 = "str1";
    @DataPoint
    public static String dataPoint2 = "str2";
    @DataPoint
    public static int intDataPoint = 2;

    @Theory
    public void theoryMethod(String dataPoint, int intData){
        //...some asserts
    }
}

@DataPoint 註釋的每個欄位將用作理論中給定型別的方法引數。在上面的示例中,theoryMethod 將使用以下引數執行兩次:["str1", 2] , ["str2", 2]

@DataPoints 註釋 @RunWith(Theories.class) 公共類 FixturesTest {

    @DataPoints
    public static String[] dataPoints = new String[]{"str1", "str2"};
    @DataPoints
    public static int[] dataPoints = new int[]{1, 2};

    @Theory
    public void theoryMethod(String dataPoint, ){
        //...some asserts
    }
}

@DataPoints 註釋註釋的陣列的每個元素將用作理論中給定型別的方法引數。在上面的例子中,theoryMethod 將使用以下引數執行四次:["str1", 1], ["str2", 1], ["str1", 2], ["str2", 2]