JUnit测试辅助需要逻辑

时间:2017-05-02 13:13:53

标签: java testing junit

我正在尝试为下面的代码制定一个JUnit测试,我希望有人能够指出我正确的方向,因为我完全被难倒了!

public ArrayList<PathData> tileClicked(Coordinate tile){
    ArrayList<PathData> pathData = new ArrayList<>();
    Tile clickedTile = gameBoard.getTile(tile);
    int totalNumPlayers = clickedTile.getNumberOfPlayers();
    Player cur;
    //GuiInstruction guiInstruction = new GuiInstruction();
    //guiInstruction
    if (clickedTile.hasPort()){
        //deal with ports
        for(int j = 0; j < totalNumPlayers; j++){
            cur = clickedTile.getPlayerIndex(j);
            if(cur.equals(currentPlayer)){
                pathData = specialCalculateMove(currentPlayer, true);
            }
        }
    } else if (clickedTile.hasPlayer()){
        for(int i = 0; i < totalNumPlayers; i++){
            cur = clickedTile.getPlayerIndex(i);
            if(cur.equals(currentPlayer)){ //TODO: Is this if statement stupid? 
                pathData = normalCalculateMove(currentPlayer);
            }
        }
    }else{
        //TODO: Does this actually do anything?
    }
    return pathData;

}

1 个答案:

答案 0 :(得分:0)

一个非常广泛的问题,因此您只能获得一些广泛的提示(不会为您编写代码!):

  • 您必须了解A)进入方法B的参数是什么?结果是什么?你的方法可以拥有的“可观察的”效果
  • 从那里:你提供一个tile参数;并且根据该对象的实际状态,您测试的方法使用不同的路径

这意味着:您希望通过您的方法为每个可能的路径至少拥有一个“测试方法”。该测试方法使用参数 Designed 调用测试中的方法以获取特定路径。你调用测试中的方法;然后检查返回的结果是否符合您的期望。