【たんたいてすと(ゆにっとてすと)】

単体テスト(ユニットテスト) とは?

💡 部品の品質保証は、組み立て前に一個ずつ確かめるところから始まる
📌 このページのポイント
単体テスト:最小単位を独立して検証 add(a, b) 入力: 3, 5 期待値: 8 formatDate(d) 入力: 20260409 期待値: "2026-04-09" divide(a, 0) エラー処理を確認 → バグ検出! モックで外部依存を分離 DBアクセス (モックに置換) 外部API (モックに置換) 関数単体だけを独立してテスト可能 → 高速・安定・繰り返し実行できる → CIで自動実行
単体テストは関数を独立させてモックで依存を切り離す
ひよこ ひよこ

単体テストって、普通にプログラムを動かして確認するのとどう違うの?

ペンギン先生 ペンギン先生

手動で動かす確認は時間がかかるし、毎回同じ条件で試せないんだ。単体テストはコードで書いた検証を自動で何度でも実行できるから、変更のたびにすぐ確認できるよ。

ひよこ ひよこ

「単体」ってことは、ひとつの関数だけ試すってこと?

ペンギン先生 ペンギン先生

そうだよ。「この関数に5を渡したら10が返ってくるはず」みたいな確認を繰り返すんだ。外部のデータベースAPIへの依存は「モック」に置き換えて、その関数だけに集中できるようにするんだよ。

ひよこ ひよこ

モックって何?

ペンギン先生 ペンギン先生

本物の代わりに使う「偽物」だよ。たとえば「データベースから取得する」処理をモックに置き換えると、実際のDBがなくてもテストを実行できるんだ。テストを素早く・安定して動かすための仕組みだよ。

ひよこ ひよこ

TDDって聞いたことあるんだけど、単体テストと関係あるの?

ペンギン先生 ペンギン先生

深く関係があるよ。TDDは「テストを先に書いてから実装する」手法で、そこで書くテストがまさに単体テストなんだ。「失敗するテストを書く→実装して通す→リファクタリング」のサイクルを繰り返すんだよ。

ひよこ ひよこ

単体テストを書くと何がうれしいの?

ペンギン先生 ペンギン先生

一番の利点は「安心してコードを変更できること」だよ。リファクタリングしたときにテストが通れば「壊していない」と確認できる。それと、バグを最小単位で発見できるから修正がとても楽になるんだよ。

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「単体テスト」って出てきたら「関数ひとつを単独でチェック」と思えればだいたいOK!
📖 おまけ:英語の意味
「Unit Testing」 = 単体テスト・ユニットテスト
💬 「Unit(単位・単体)」が語源で、コードの最小単位を個別にテストするという意味だよ
← 用語集にもどる