モックと、スタブとドライバと…

JavaのJUnitを勉強してて、モックというのを学んでるんだが、ググってると、モックとスタブは違うという記事が結構見つかる。
調べたところ、結構混同されやすいみたい。
で、わかったことをまとめると次のような感じ。

モック:
まだできてない箇所をダミーのオブジェクトで補ってテストする仕組み

スタブ:
テスト対象オブジェクトから利用するオブジェクトがまだ完成していないとき、代替えする仕組み

ドライバ:
テスト対象を利用しようとするオブジェクトがまだ完成していないとき、代替えする仕組み

といった感じ。
なので、モックとスタブが同一視されやすい。
モックはあくまでダミーのオブジェクトを作る仕組みのことなので、スタブの役割もできちゃうから混同されるっぽい。

ちなみにドライバもモックじゃね?という感じもするが、モックはテスト対象から利用するダミーオブジェクトを作ることなので、
ドライバという意味からは対象外になる。

こんな感じかな?

ようするに、モックとは違うのだよ。モックとは。ってことね。(言いたいだけ)