TDDを行う上で使われるものにモックとスタブというのがある。
色々情報を見ても、二者の違いの解釈は色々あってわかりにくかった。
- wikipedia
- 「スタブ」と「モック」は全然違うものなんですよ
- テストダブル
- RSpec でテストを作るのに役立つ「モック/スタブ」のシンプルな説明
- スタブとモックの違いについて
- The Difference Between Mocks and Stubs
上記を読んで一番わかりやすいと思ったのが4番のリンクで書かれていた以下のものだった。
- モック: 「オブジェクトのメソッドがどう呼ばれて何を返すか」というインタフェースも含めたテストのために使う
- スタブ: テストをスムーズに行うために「あるオブジェクトのメソッドが呼ばれたら、ある戻り値を返す」ために使う
(追記 2017/06/06) 肝心の4番の日本語記事がなくなったようです。 そのページに記載されている英語記事へのリンクはうまくつながらない。
以下が英語の記事のようです。
http://blog.morizyun.com/blog/mock-stub-outline-rspec-ruby/