少し頭の中で整理できたので、まとめおく。
どちらも同じような動作をできてしまうため混同してしまうが、明確に役割を区別し、動作を限定させることが重要である。
▼ 共通
・ 代理の役割を果たす
ex) court(裁判官)オブジェクトが、①{ judgeメソッドを実行すれば false を返す } ことを期待する
: judgeメソッドの中身
judge (){
h_result = ヒアリングメソッド();
result = リサーチメソッド(h_result);
return result;
}
①の箇所の役割を代理で行うということ
▼ スタブ
スタブの役割は、
インターフェイスとして「確かな結果を出す(false を出す)」という役割のみを期待される。
上記の例からだと、①が期待できれば良いということ。
judgeメソッドがどような課程を経て false という結論に到達したかは、考慮にいれる必要がない場合にスタブを利用する
▼ モック
モックの役割は、
インターフェイスとして「確かな課程を踏み」、「確かな結果を出す(false を出す)」という役割を期待される。
上記の例中であれば、judgeメソッド の中の処理項目(リサーチメソッド、ヒアリングメソッド)も確かに実行されていること、かつ結果としてfalse を返すことを代理実行する役がモックである
0 件のコメント:
コメントを投稿