使用理论进行单元测试
来自 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]