【ゆにっとてすと】

ユニットテスト とは?

最終更新:
💡 部品の約束を、小さく繰り返し確かめる

関数やクラスなど、選んだ小さな単位の振る舞いを確認するテスト。条件と期待する結果を用意して繰り返し実行し、変更による問題を見つけやすくする。

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

参考資料

← 用語集にもどる