junit 使用理论进行单元测试
示例
从JavaDoc
Theoriesrunner允许针对一组无限数据点的子集测试某种功能。
运行理论
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(){
        //...一些断言
    }
}带注释的方法@Theory将被TheoriesRunner视为理论。
@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){
        //...一些断言
    }
}每个带有注释的字段@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, ){
        //...一些断言
    }
}带有@DataPoints注释的数组中的每个元素都将用作理论中给定类型的方法参数。在上面的示例中,theoryMethod将使用以下参数运行四次:["str1",1],["str2",1],["str1",2],["str2",2]
