【ゆにっとてすと】

ユニットテスト とは?

💡 コードの「部品検査」を自動化する
📌 このページのポイント
ユニットテスト ― 部品ごとに動作確認 テストピラミッド E2Eテスト(少) 結合テスト(中) ユニットテスト(多) テスト例: add関数 add(2, 3) → 5 add(0, 0) → 0 add(-1, 1) → 0 関数単位で入力→出力を検証 ユニットテストのメリット バグの早期発見 安心してリファクタリング 仕様のドキュメント代わり
ユニットテストのイメージ
ひよこ ひよこ

なんでテストを書くの?

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

①バグの早期発見(手動テストより速く正確)、②安心してリファクタリングできる(動作が変わっていないことを保証)、③仕様のドキュメント代わり(テストを読めば関数の使い方が分かる)。最初は面倒に感じるけど、長期的には開発速度が上がるんだよ

ひよこ ひよこ

何をテストすべき?

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

①正常系(期待通りの入力で期待通りの出力か)、②境界値(0、空文字、最大値、最小値)、③異常系(不正な入力でエラーが出るか)。100%のカバレッジを目指す必要はなく、ビジネスロジックの核心部分を重点的にテストするのが効率的だよ

ひよこ ひよこ

モックって何?

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

テスト対象が依存する外部サービス(DB、APIファイルシステム)を模倣する偽物だよ。外部APIを呼ぶ関数をテストするとき、実際にAPIを呼ぶと遅いし不安定。モックで「こういうレスポンスが返る」と決めておけば、高速・安定にテストできる。ただしモックしすぎると実態との乖離が生まれるリスクもあるよ

ひよこ ひよこ

TDDって何?

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

Test-Driven Development(テスト駆動開発)。①テストを書く(Red)→②テストが通る最小のコードを書く(Green)→③リファクタリング(Refactor)のサイクルを繰り返すよ。設計を考えながらコードを書けるし、テストが必ず揃うメリットがある。全てにTDDを適用する必要はないけど、手法として知っておくと引き出しが増えるね

ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「ユニットテスト」って出てきたら「関数レベルの自動テスト」と思えればだいたいOK!
📖 おまけ:英語の意味
「Unit Test」 = 単体テスト
💬 Unit(最小単位)のTest(テスト)。プログラムの最小部品を1つずつ検証するよ
← 用語集にもどる