【ゆにっとてすと】
ユニットテスト とは?
最終更新:
💡 部品の約束を、小さく繰り返し確かめる
関数やクラスなど、選んだ小さな単位の振る舞いを確認するテスト。条件と期待する結果を用意して繰り返し実行し、変更による問題を見つけやすくする。
📌 このページのポイント
- 単位は関数だけとは限らず、対象の振る舞いを決める
- 準備・実行・結果の確認を分けて書く
- 正常な場合・境界・失敗の扱いなど、重要な条件を確かめる
- テストが通ることやカバレッジの高さだけで、正しさ全体は保証しない
どうして小さくテストするの?
たとえば送料の計算を、画面や実際の配送サービスを動かさずに確かめるんだ。条件を絞ると、問題がある場所を調べやすく、変更後も繰り返し確認しやすい。ひとつの単位は関数だけとは限らず、クラスなどのまとまりになることもあるよ。
どんなふうに書くの?
準備・実行・確認を分けると読みやすいよ。送料なら「合計金額が無料になる境界にある」という条件を準備し、計算を実行し、結果が0かを確認する。期待値は、作ったコードの計算をそのまま写すより、確認したい仕様から決めるんだ。
どんな条件を選ぶの?
正常な場合に加えて、境界や失敗の扱いなど、重要な振る舞いを選ぼう。入力が0・空・上限付近のときなど、仕様に意味のある条件が役立つ。テスト名で条件と期待が分かると、失敗したときにも調べやすいよ。カバレッジは参考になるけれど、高ければ正しいという証明ではないんだ。
外部のAPIも、本当に呼ぶの?
ユニットテストとTDDは同じ?
違うよ。ユニットテストは確認するテストの種類で、TDDはテストから開発を進める手法。テストを書き、通る実装を用意し、設計を整えるサイクルが基本だよ。完成したコードにテストを追加することもできる。テストが通っても、用意していない条件や全体の動作まで保証されるわけではないんだ。
まとめ:ざっくりこれだけ覚えればOK!
「ユニットテスト」って出てきたら「小さな単位の振る舞いを、条件と期待する結果で確かめるテスト」と思えばだいたいOK!
📖 おまけ:英語の意味
「Unit Test」 = 単体テスト
💬 unitは、ここでは確認の対象に選んだ小さな単位のこと。関数やクラスなどの振る舞いを、条件をそろえて確かめるんだ。