
205
5
Column
テストダブル
テストダブルには図5.2.5 に示すバリエーションがあります
※3
。ここで、
SUT(System Under Test)はユニットテストにおけるテスト対象ユニット
を、DOC(Depended-On Component)はSUTが依存するユニットを指し
ます。テストダブルは、ユニットテスト時に実際のDOCを置き換えて利用
されます。
これらのテストダブルは、開発者がコードを実装して用意することもでき
ますが、APIを用いてテストダブルの生成や設定を容易に行うことができる
テストダブルライブラリの利用も可能です(テストフレームワークによって
は、標準機能でテストダブル生成をサポートするものもあります)。
振る舞いの単位
もう一つのユニットの捉え方は、コンポーネントを最小単位と見なす
考え方です。
書籍『レガシーコードからの脱却 ソフトウェアの寿命を延ばし価値
を高める9つのプラクティス』
※4
ではユニットテストのユニットを以下
のように説明しています。
⹅
図5.2.5
テストダブルのバリエーション
バリエーション 概要
スタブ
(Test Stub)
実際のDOC の代わりに適切な応答を行い、メソッド呼び出
しに対して所定の結果を返す。
スパイ
(Test Spy)
テストスタブの機能に加え、SUTからのメソッド呼び出し
を記録して後から検証する機能を持つ。
モック
(Mock Object)
SUT からDOC に対する相互作用の期待値を事前に定義し、
期待どおりの相互作用が発生したかどうかを検証すること ...