Да, вы - во-первых, забудьте о модульном тестировании как о причине разработки кода с использованием инструментов модульного тестирования, никогда не стоит менять дизайн кода так, чтобы он соответствовал искусственному ограничению. Если ваши инструменты заставляют вас делать это, приобретите более совершенные инструменты (например, Microsoft Fakes / Moles, которые предоставляют вам гораздо больше возможностей для создания фиктивных объектов).
Например, вы бы разбили свои классы на общедоступные методы только потому, что инструменты тестирования не работают с закрытыми методами? (Я знаю, что превалирующая мудрость заключается в том, чтобы притворяться, что вам не нужно тестировать частные методы, но я чувствую, что это реакция на трудности, возникающие при работе с современными инструментами, а не настоящая реакция на отсутствие необходимости тестировать рядовых).
В общем, все сводится к тому, какой вы TDDer - «имитатор», как описывает их Фаулер , - нужно изменить код в соответствии с инструментами, которые они используют, в то время как «классические» тестеры создают тесты, которые более интегрированы по своей природе. (т. е. тестируйте класс как единое целое, а не как каждый метод), чтобы меньше было необходимости в интерфейсах, особенно если вы используете инструменты, которые могут издеваться над конкретными классами.