C#でじゃんけん 第3版
C# でじゃんけんするプログラム 第3版 です。
第3版では、勝ち、負け、あいこを判断する JudgeResult() メソッドの単体テストを作成します。単体テストにより、その対象メソッドの動作を確認するとともに、実装の改良が自信を持って進められるようになります。
JudgeResult メソッドは、あなたの手 3 通り、コンピュータの手 3 通り、合計 3 x 3 = 9 通りの組み合わせの中から結果を判断します。単体テスト TestJudgeResult() メソッドは、そのそれぞれの場合についてテストを実施します。1 つのテストは、メソッドの入力、予期する結果、説明、という形にまとめます。
[TestMethod] public void TestJudgeResult() { CheckJudgeResult(JankenApp.GU, JankenApp.GU, JankenApp.Draw, "GU, GU => Draw"); CheckJudgeResult(JankenApp.GU, JankenApp.CYOKI, JankenApp.YouWin, "GU, CYOKI => YouWin"); CheckJudgeResult(JankenApp.GU, JankenApp.PA, JankenApp.ComputerWin, "GU, PA => ComputerWin"); CheckJudgeResult(JankenApp.CYOKI, JankenApp.GU, JankenApp.ComputerWin, "CYOKI, GU => ComputerWin"); CheckJudgeResult(JankenApp.CYOKI, JankenApp.CYOKI, JankenApp.Draw, "CYOKI, CYOKI => Draw"); CheckJudgeResult(JankenApp.CYOKI, JankenApp.PA, JankenApp.YouWin, "CYOKI, PA => YouWin"); CheckJudgeResult(JankenApp.PA, JankenApp.GU, JankenApp.YouWin, "PA, GU => YouWin"); CheckJudgeResult(JankenApp.PA, JankenApp.CYOKI, JankenApp.ComputerWin, "PA, CYOKI => ComputerWin"); CheckJudgeResult(JankenApp.PA, JankenApp.PA, JankenApp.Draw, "PA, PA => Draw"); }
TestJudgeResult() メソッドで使用している CheckJudgeResult() メソッドは、以下のように、指定の引数でメソッドを呼び出し、実際の結果が予期するものと同じかどうか確認します。
private void CheckJudgeResult( int yourHand, int computerHand, int expectedResult, string message) { // 指定の引数でメソッドを呼び出し、実際の結果が予期するものと同じかどうか確認します。 int actualResult = JankenApp.JudgeResult(yourHand, computerHand); Assert.AreEqual(expectedResult, actualResult, message); }