
207
5
フトウェア設計の第一歩ですので、むしろテストコードを書くこととリ
ファクタリングによって、ちょうどよい振る舞いの単位を見出していく
ことが肝要だと筆者は考えます。
どちらの方法を取るかはトレードオフとなりますが、筆者の意見とし
ては振る舞いの単位ごとにユニットテストを作成する方法を推薦したい
と思います。
ユニットテストの特徴
二つの方法でユニットの粒度に違いはありますが、いずれにせよイン
テグレーションテストと比べてユニットテストの実行対象範囲は狭く、
その対象を他と独立してテストすることが可能です。このことにより、
ユニットテストには以下の特徴があります。
●
テスト対象に与える入力データや、依存オブジェクトの準備が容易
である
●
テストケースのバリエーションを増やしやすい
●
テストの実行時間が短い
●
テストが失敗した場合に原因を特定しやすい
インテグレーションテスト
インテグレーションテスト(Integration Testing。日本語では統合
テストまたは結合テスト)は、複数のユニットやコンポーネントを組み
合わせたときに、それらが集合体として正常に動作することを検証する
テストです。
ユニットテストとE2Eテストとの間の粒度のテストは、すべてイン
テグレーションテストと言えます。ですので、ユニットテストにおける
ユニットの定義をプログラムの最小単位とする方法だと、二つ以上のプ
ログラムを統合して行うテストがインテグレーションテストです。振る
舞いの単位とする方法ならば、二つ以上のコンポーネントを統合するテ