Мы используем TypeMock в течение нескольких лет, и по моему опыту нет существенных накладных расходов (я уверен, что накладные расходы, это просто не большая проблема).
Однако из-за характера работы TypeMock есть несколько вещей, которые следует учитывать. Поскольку TypeMock в основном работает, вводя код «на лету», ошибки иногда могут быть очень экзотическими. Ошибки отчетности могут, таким образом, стать немного сложной задачей. Будьте готовы копать в Ил.
Мой опыт в том, что может быть трудно объяснить «средний разработчик», как работает TypeMock. Это быстро усложняется, и даже несмотря на то, что их инструменты Trace делают поиск неисправностей выполнимым, он все еще оставляет немного поддержки.
Кроме того, поскольку TypeMock позволит вам издеваться над чем-либо (кроме mscorlib), вам не нужно добавлять необходимые уровни косвенности к вашему коду. Это особенность, и TypeMock здесь не виноват. Тем не менее, я видел, как многие разработчики пытались решить свои проблемы, издеваясь над местом вместо того, чтобы развязать код. Это не улучшает общее качество кода IMO.
TypeMock позволяет вам высмеивать DateTime.Now и StreamReader.ReadToEnd (я думаю, что он начинается с 5.3.1) – andreister