2012年3月12日月曜日

Mock(モック)とは、Stub(スタブ)とは。 まとめ

少し頭の中で整理できたので、まとめおく。
どちらも同じような動作をできてしまうため混同してしまうが、明確に役割を区別し、動作を限定させることが重要である。



▼ 共通

・ 代理の役割を果たす

ex) court(裁判官)オブジェクトが、①{ judgeメソッドを実行すれば false を返す } ことを期待する


: judgeメソッドの中身

judge (){

  h_result = ヒアリングメソッド();
  result = リサーチメソッド(h_result);

  return result;




①の箇所の役割を代理で行うということ


▼ スタブ

スタブの役割は、
インターフェイスとして「確かな結果を出す(false を出す)」という役割のみを期待される。
上記の例からだと、①が期待できれば良いということ。
judgeメソッドがどような課程を経て false という結論に到達したかは、考慮にいれる必要がない場合にスタブを利用する



▼ モック

モックの役割は、
インターフェイスとして「確かな課程を踏み」、「確かな結果を出す(false を出す)」という役割を期待される。
上記の例中であれば、judgeメソッド の中の処理項目(リサーチメソッド、ヒアリングメソッド)も確かに実行されていること、かつ結果としてfalse を返すことを代理実行する役がモックである


0 件のコメント:

コメントを投稿