Использование «друзей» -декларации для модульного тестирования. Плохая идея?

[Конечно, вопрос не ограничен конкретной «дружественной» реализацией, хотя вы можете указать на особенности реализации, если это уместно.]

Читая оставшиеся без ответа вопросы, я наткнулся наInternalsVisibleTo атрибут:

Указывает, что типы, которые обычно видимы только внутри текущей сборки, видны другой сборке.

Руководство по программированию на C # наMSDN имеет разделСборки друзей описывая, как использовать атрибут, чтобы разрешить использованиеinternal методы и типы для другой сборки.

Мне интересно, будет ли хорошей идеей использовать это для создания «скрытого» интерфейса для оснащения библиотеки для использования модулем модульного тестирования. Кажется, что это значительно увеличивает связь в обоих направлениях (тестирование кода в рабочей сборке, глубокие внутренние знания о рабочей сборке в тестовом коде), но, с другой стороны, это может помочь в создании детальных тестов без загромождения открытого интерфейса.

Каков ваш опыт использования объявлений друзей при тестировании? Это была твоя Серебряная пуля, или это начало Марша смерти?

Ответы на вопрос(5)

Ваш ответ на вопрос