いつ読むか?

  • テストダブルの種類(モック・スタブなど)を使い分けたいとき。

読書メモ

xUnit Test Patterns (xUTP) に基づくテストダブルの分類。

登場人物

  • SUT(テスト対象)
  • DOC(SUTが依存するコンポーネント)
  • 直接入出力: テスト ↔ SUT 間
  • 間接入出力: SUT ↔ DOC 間

テストダブル4分類

種類目的
スタブ間接入力を操作(固定値を返す)時刻関数を固定値に差し替え
スパイ間接出力を記録(後で検証)呼び出し引数を記録
モック間接出力を検証(呼び出し確認)SQL文・APIリクエストの検証
フェイク実装ごと置換(軽量な代替実装)DBをメモリ実装に差し替え

※ダミーはテストダブルではないとして除外されている。

ポイント: モックは「検証」、スパイは「記録」、スタブは「入力操作」、フェイクは「実装置換」という関心の違いで区別する。