Мы успешно смоделировали сервисы netTiers с помощью typemock isolator .
Typemock хорошо сработал для нас, потому что, как говорится в их списке возможностей, он позволяет имитировать «непроверяемый код, такой как: статические, запечатанные и не виртуальные методы» - хотя это не самый простой подход к имитации, он позволяет Вы должны тестировать классы глубже в коде, который вы, возможно, не сможете легко внедрить. (в нашем случае через наш собственный плохой дизайн: -)
Итак, в нашем примере мы компилируем решение netTiers в двоичные файлы и ссылаемся на них в наших проектах. Затем мы создаем наши бизнес-сервисы, чтобы обернуть сервисы netTiers, добавив дополнительную логику и в некоторых случаях кеширование. Мы не встраивали никаких инъекций зависимостей и не добавляли модульное тестирование позже в тот же день.
Таким образом, используя typemock, мы смогли создать тест на нашем уровне контроллеров, чтобы он протестировал контроллер и бизнес-сервис и просто сказал typemock, что, когда customerservice создается на уровне бизнес-сервисов, меняйте его с mock, который вернул вместо фиксированных данных.