我正在尝试为Android项目编写一套JUnit测试。对于我编写的每个类,我都有一个相应的Test,它正在扩展TestCase。在每个TestCase中,我的印象是我应该为被测试的类中的每一个编写一个test()。据说我不知道如何处理多种可能输入的测试方法。我想请求一些测试复杂方法的例子,这些方法比通常的教程示例更复杂。
public void tutorialTestExample() throws Exception {
final int expected = 1;
final int actual = 5;
assertEquals(expected, actual);
}
这是我试图测试的方法。
public void distributeStones(int stones, int trayIndex) {
if(stones == 0){
switchPlayer();
}
while (stones > 0) {
if (trayIndex == 15) {
trayIndex = 0;
} else {
trayIndex++;
if (board.get(trayIndex).getPlayer() == opponent && board.get(trayIndex).isStore() ) {
trayIndex = IncrementTrayIndex(trayIndex);
}
}
if (stones == 1 && board.get(trayIndex).getPlayer() == currentPlayer && board.get(trayIndex).isStore()){
stones--;
board.get(trayIndex).incrementStones();
switchPlayer();
}else if (stones == 1 && board.get(trayIndex).getStones() == 0 && board.get(trayIndex).getPlayer() == currentPlayer && !board.get(trayIndex).isStore()){
stones--;
stealStones(trayIndex);
}else{
stones--;
board.get(trayIndex).incrementStones();
}
}
}
distributeStones在游戏板周围移动石头,游戏板表示为容器列表(包括商店和托盘)。 你会测试什么? 如何使用断言来测试依赖于输入的几种可能结果?
感谢您的时间, 克里斯