JavaのassertEqualsとは?期待値と実際の結果を比べる考え方

本記事は、Schooの「Java入門 中級【2026年版】」第3回「単体テストによるビジネスロジック検証」を学ぶ前後に、JUnitの assertEquals の考え方を整理したい方向けの記事です。
assertEquals は、単体テストでよく使う確認方法です。「この入力なら、この結果になるはず」という期待値と、メソッドを実行した実際の結果を比べます。
Schoo コースページ:Java入門 中級【2026年版】
assertEqualsは期待値と実際の結果を比べる
assertEquals は、2つの値が同じかどうかを確認するために使います。単体テストでは、左側に期待値、右側に実際の結果を置いて考えると読みやすくなります。
assertEquals(500, actual) は、「500になるはず」という期待値と、実際に返ってきた値を比べます。mainで表示して確認する方法との違い
main メソッドで実行して、画面に表示された値を人が見る方法でも、動作確認はできます。ただし、毎回人が表示結果を見て判断する必要があります。
ShippingFeeCalculator calculator = new ShippingFeeCalculator();
System.out.println(calculator.calculateFee(3000));
この方法では、表示された 500 を見て「合っている」と人が判断します。assertEquals を使うと、その判断をテストコードに書けます。
ShippingFeeCalculator calculator = new ShippingFeeCalculator();
int actual = calculator.calculateFee(3000);
assertEquals(500, actual);
これなら、結果が 500 ならテスト成功、違う値ならテスト失敗としてJUnitが知らせてくれます。
第1引数には期待値を書く
assertEquals は、基本的に assertEquals(期待値, 実際の結果) の順番で書きます。
たとえば「購入金額が3000円なら送料は500円になるはず」と考える場合、期待値は 500 です。メソッドの実行結果は actual という変数に入れておくと読みやすくなります。
int actual = calculator.calculateFee(3000);
assertEquals(500, actual);
一致しない場合はテストが失敗する
assertEquals では、期待値と実際の結果が一致しない場合、テストは失敗します。これは悪いことではなく、「想定と違う動きがある」と気づくための情報です。
失敗したときは、すぐに実装だけを疑うのではなく、期待値の考え方が正しいかも確認します。テストコードにも間違いが入ることがあります。
境界値をassertEqualsで確認する
assertEquals は、条件の境目を確認するときにも役立ちます。たとえば「5000円以上なら送料無料」というルールなら、4999、5000、5001 を確認すると、条件式の間違いに気づきやすくなります。
@Test
void testCalculateFee() {
ShippingFeeCalculator calculator = new ShippingFeeCalculator();
assertEquals(500, calculator.calculateFee(4999));
assertEquals(0, calculator.calculateFee(5000));
assertEquals(0, calculator.calculateFee(5001));
}
このように、単に1つの値だけを確認するのではなく、条件が切り替わる境目を確認すると、テストの意味がはっきりします。
確認問題
次の送料計算メソッドをテストするとします。
public int calculateFee(int amount) {
if (amount >= 5000) {
return 0;
}
return 500;
}
「3000円なら送料500円」「5000円なら送料0円」を確認する assertEquals を書いてください。
演習後の確認:こちらのページを使って、自分で考えた内容を見直せます。
まとめ
assertEqualsは、期待値と実際の結果を比べる確認- 基本は
assertEquals(期待値, 実際の結果)の順番で書く mainで目視する代わりに、テストコードで自動確認できる- 境界値を確認すると、条件式の間違いに気づきやすい