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

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

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

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

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

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

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