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