我正在开发一个具有网格的应用程序,并且只有网格的某些点被认为是有效的。我需要使用所有可能的网格值或至少使用所有边界点对此进行广泛测试。
我已经尝试过参数化测试。它可以正常工作,因为数据在某个点之后变得无法管理。下面给出了 3x3 网格的示例测试。
@RunWith(Parameterized.class)
public class GridGameTest {
@Parameters
public static Collection<Object[]> data(){
return Arrays.asList(new Object[][] {
{ 0, 0, false }, { 0, 1, false }, { 0, 2, false },
{ 1, 0, false }, { 1, 1, true }, { 1, 2, false },
{ 2, 0, false }, { 2, 1, false }, { 2, 2, false }
} );
}
private final int x;
private final int y;
private final boolean isValid;
public GridGameTest(int x, int y, boolean isValid){
this.x = x;
this.y = y;
this.isValid = isValid;
}
@Test
public void testParameterizedInput(){
Grid grid = new Grid(3,3);
assertEquals(isValid, grid.isPointValid(new Point(x,y)));
}
}
关于如何分组/管理数据的任何输入,以便我的测试保持简单易读?