[英]how to test this class with JUnit testing?
我有 java 語言的井字游戲,我必須為此游戲 class 進行 Junit 測試用例,因為我需要為此應用程序應用突變測試。 誰能幫我寫出好的測試用例。
public class Game {
private Board board;
private Queue<Player> players;
public Game() {
board = new Board();
players = new LinkedList<>();
addPlayers();
}
private void addPlayers() {
players.add(new Player("X"));
players.add(new Player("O"));
}
private void startGame() throws IOException {
do {
Player currentPlayer = players.remove();
System.out.println("Enter position for Player "+currentPlayer.toString());
java.io.BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
board.placeMarker(currentPlayer,new Position(Integer.parseInt(in.readLine()),Integer.parseInt(in.readLine())));
players.add(currentPlayer);
System.out.println(board.toString());
if(board.hasWon(currentPlayer)){
break;
}
}while (board.hasEmptyPosition());
}
public void main(String[] args) {
Game game= new Game();
try {
game.startGame();
} catch (IOException e) {
e.printStackTrace();
}
}
}
這是一個非常簡單的應用程序,因此沒有太多可能的測試要做。
首先,您應該專注於測試 class 的公共 API,但在您的情況下,您只有main
。 其次,你依賴於外部輸入,這使得測試你的代碼變得更加困難......
我建議您閱讀一些有關如何使您的代碼更可測試的文章。 例如:
一些首發:
Application
startGame()
方法接收 function 作為輸入,該 function 返回輸入(在您的 PROD 代碼中,您將使用 BufferedReader,在測試代碼中您可以使用 stream 例如addPlayers
方法的想法相同do...while
中的代碼),以便您也可以對其進行測試也許你可以找到更多的任務
ps:但最后,有了這樣一個基本的代碼庫,這有點矯枉過正......
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.