我试图通过解决基于文本的MineSweeper游戏问题来学习TDD。其中的最后一部分是编写fillGrid
方法,用于绘制Grid
我最终进入了:
public Grid fillGrid(Grid grid) {
String[][] gridCells = grid.getGrid();
fillBomb(grid);
for(int i=0;i<gridCells.length;i++){
for(int j=0;j<gridCells[0].length;j++){
if(!constraints.checkBombsAndNumbersPresentAsRequrired(grid.getSurroundingValues(i,j)))
{
if(gridCells[i][j] != "*") {
if(getBombCount(grid.getSurroundingValues(i, j)) != 0)
grid.setCells(i, j, "" + getBombCount(grid.getSurroundingValues(i, j)));
}
}
}
}
grid.prettyPrint( grid.getGrid() );
return null;
}
在上面的代码中,我分别测试了fillBomb
和checkBombsAndNumbersPresentAsRequried
。现在我对如何测试fillGrid
本身感到震惊!
当我试图遵循TDD模式时,我写了fillGrid
失败测试用例,如:
Grid
是否满足MineSweeper本身我击中的第二点。如果我要为第二点写一个测试用例,很可能,我也会在我的测试用例中检查相同的逻辑!
有一件事我认为我使用checkBombsAndNumbersPresentAsRequrired
清楚地检查了形成的数据,但是我们可以跳过在TDD中测试fillGrid
,即使它有一些关键的逻辑吗?
我在这里想念一下吗?
答案 0 :(得分:0)
如果您正在尝试学习TDD,首先要学习的是在编写代码之前编写测试。这将消除“如何测试此代码”的许多问题,因为您已经有了测试。