「部分的なモック」とそれを必要とするコードについて、なぜこれほど多くの嫌悪が起こっているのでしょうか?
(理論上の)実装例を次に示します。
public ComplexResult1 operationA(Stimulus a) {
{
...
result = ...;
}
auditTheChange(a);
}
public ComplexResult2 operationB(Stimulus b) {
{
...
result = ...;
}
auditTheChange(b);
return result;
}
void auditTheChange(Stimulus stim) {
// do a bunch of stuff to record the change
// and interact with another outside service
}
さて、私の理解では、これはよくリファクタリングされたコードです。
operationA と operationB を UNIT テストし、各シナリオで監査が行われることを確認したいが、監査コードの詳細をテストする必要がない場合は、部分モックを使用します。
非常に多くのプロジェクト (EasyMock、Mockito など) がリファクタリングを推奨する理由は何ですか?