Почему так много ненависти происходит о «частичной насмешке» и коде, который требует этого?
Вот (теоретический) пример реализации:
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
}
Теперь в моемПонимание этого является хорошо переработанным кодом.
Если я хочу UNIT протестировать операцию A и операцию B, и гарантируют, что аудит происходит в каждом сценарии, , но без необходимости проверятьСпецифика кода аудита, я бы использовал частичное макетирование.
Что я не вижу / не понимаю, что заставляет так много проектов (EasyMock, Mockito и т. д.) рекомендовать рефакторинг?