test double / テスト代役
ソフトウェアテストにおいて、テスト対象が依存しているモジュールやリソースの代役を務めるプログラムこと。スタブやモックなどの総称として提案された。
単体テストや結合テストを考えたとき、テスト対象モジュールが呼び出している相手モジュールが未実装だったり、参照先の外部サービスが利用できなかったりすると、当該テスト対象モジュールを実行できず、テストは不能となる。また、依存相手が正しいと検証ができていなければ、テスト対象の出力や振る舞いに誤りが含まれていても、原因がテスト対象にあるかどうか特定できない。
こうしたとき、テスト対象が依存するリソースの“振り”をするプログラムを用意して、テストを実施する方法がある。このような依存先の置き換えに使われる代役プログラムをテストダブルをという。
テストダブルとされるものには「テストスタブ」「テストスパイ」「モックオブジェクト」「フェイクオブジェクト」「ダミーオブジェクト」がある。テストダブルという用語自体、これらの総称として、ジェラルド・メサローシュ(Gerard Meszaros)が提案したものである。
テストダブルは依存モジュールを完全にシミュレートする必要はなく、目的のテストが必要とする機能が提供できればよい。異なるテストのために異なるテストダブルが用意されることもある。
▼『xUnit Test Patterns: Refactoring Test Code』 Gerard Meszaros=著/Addison-Wesley Professional/2007年5月
Copyright © ITmedia, Inc. All Rights Reserved.