テストダブル

2006年1月17日

Gerard Meszarosは、さまざまなXunitフレームワークを使用するパターンの収集のための本に取り組んでいます。彼が直面している厄介な問題の1つは、スタブ、モック、フェイク、ダミー、および人々がテスト用にシステムの一部をスタブアウトするために使用するその他のもののさまざまな名前です。これに対処するために、彼はさらに広める価値があると考えている独自の語彙を考え出しました。

彼が使用する一般的な用語はテストダブル(スタントダブルを考えてみてください)です。テストダブルは、テストのために製造オブジェクトを置き換えるすべてのケースの一般的な用語です。Gerardはさまざまな種類のダブルをリストしています。

  • ダミーオブジェクトは渡されますが、実際には使用されることはありません。通常、それらはパラメータリストを埋めるためにのみ使用されます。
  • フェイクオブジェクトには実際に実装がありますが、通常は製造には適さないいくつかのショートカットがあります(InMemoryTestDatabaseは良い例です)。
  • スタブは、テスト中に呼び出された呼び出しに対して缶詰の回答を提供します。通常、テスト用にプログラムされた以外の呼び出しにはまったく応答しません。
  • スパイは、呼び出された方法に基づいて情報を記録するスタブです。その1つの形式は、送信されたメッセージの数を記録する電子メールサービスです。
  • モックは、受信する予定の呼び出しの仕様を形成する期待事項で事前プログラミングされています。予想外の呼び出しを受信すると例外をスローできます。また、検証中にチェックされ、すべての予期される呼び出しが受信されたことが確認されます。

参考資料

私はモックはスタブではないで、モック、ダブルなどの使用法を詳しく説明しています。