最近モナド、継続に続く第三の悟りを体験した。それが「モックとスタブの違い」 自分の言葉で表すとすれば、 テスト関心空間の内側にあるのがモックで外側がスタブ といったところか。 発端はPython Testing: Beginnerでmockerを使っていたのだけど、verifyメソッドの存在意義がよく分からなかった(モックとスタブの違いを理解した今なら、verify必要に決まってんじゃんと言えるわけだが)。 悟りに至るまでにいくつかのサイトを読んだ。 スタブに関しては割りと容易に理解できる。モックとスタブの違いなんかに書いてあるように要するにスタブアウトですね。外界とのインタラクションを絶ち切って(debouple)状態にテストの関心を集中するわけだ。 で、問題はモック。Mock と Stub についてによると Mock と Stub の違いはテストの観点の違いです。相互作用(振る舞い)中