[Конечно, вопрос не ограничивается конкретной реализацией "друга", не стесняйтесь указывать на специфику реализации, если это необходимо]
Прочитав оставшиеся без ответа вопросы, я наткнулся на атрибут InternalsVisibleTo
:
Указывает, что типы, которые обычно видимый только в пределах токовая сборка видна другая сборка.
Руководство по программированию на С# на MSDN имеет раздел Friend Assemblies, описывающий, как использовать этот атрибут, чтобы использовать методы и типы internal
для другой сборки.
Мне интересно, будет ли это хорошая идея использовать это для создания "скрытого" интерфейса для инструментария библиотеки для использования модульной тестовой сборкой. По-видимому, он значительно увеличивает связь в обоих направлениях (код тестирования в сборочной единице, интимные внутренние знания о сборке в тестовом коде), но, с другой стороны, это может помочь в создании мелкозернистых тестов без загромождения открытого интерфейса.
Каков ваш опыт использования объявлений друзей при тестировании? Это была ваша Серебряная пуля, или она начала Марш смерти?