Javaの単体テストはどこまで書く?テストケースの考え方とカバレッジの目安|確認問題の回答例

Schoo Java入門 中級 第3回 単体テストによるビジネスロジック検証

このページは、Javaの単体テストはどこまで書く?テストケースの考え方とカバレッジの目安の確認問題を見直すためのページです。先に自分で考えてから、回答例と見比べてください。

確認問題の回答例

種類
入力値
期待する結果
確認方法
代表値
30
C
assertEquals
境界値
59 / 60
C / B
assertEquals
境界値
79 / 80
B / A
assertEquals
代表値
90
A
assertEquals
異常値
-1 / 101
例外
assertThrows

JUnitコード例

@Test
void testJudgeRank() {
    ScoreChecker checker = new ScoreChecker();

    assertEquals("C", checker.judgeRank(30));
    assertEquals("C", checker.judgeRank(59));
    assertEquals("B", checker.judgeRank(60));
    assertEquals("B", checker.judgeRank(79));
    assertEquals("A", checker.judgeRank(80));
    assertEquals("A", checker.judgeRank(90));
}

@Test
void testJudgeRankThrowsExceptionWhenScoreIsOutOfRange() {
    ScoreChecker checker = new ScoreChecker();

    assertThrows(IllegalArgumentException.class, () -> checker.judgeRank(-1));
    assertThrows(IllegalArgumentException.class, () -> checker.judgeRank(101));
}

解説

6080 で判定が切り替わるため、59607980 を境界値として確認しています。

また、仕様上受け付けない -1101 は異常値として扱い、assertThrows で例外を確認します。

元の記事に戻る

Javaの単体テストはどこまで書く?テストケースの考え方とカバレッジの目安