[Natürlich ist die Frage nicht auf eine bestimmte „Freund“ Implementierung beschränkt, fühlen sich jedoch freie Implementierung Besonderheiten hinweisen, wenn relevant]Verwenden von "friend" -Deklarationen für Komponententests. Schlechte Idee?
durch die offenen Fragen Lesen, ich auf das InternalsVisibleTo
Attribut gestolpert:
gibt an, dass die Typen gewöhnlich nur sichtbar innerhalb der Baugruppe Strom sichtbar sind andere Baugruppe sind.
Die C# Programming Guide auf MSDN hat einen Abschnitt Friend Assemblies das beschreibt, wie das Attribut zu verwenden, um die Verwendung von internal
Methoden und Arten auf eine andere Baugruppe zu ermöglichen.
Ich frage mich, ob es eine gute Idee wäre, dies zu verwenden, um eine "versteckte" Schnittstelle zum Instrumentieren einer Bibliothek für die Verwendung durch die Einheit Test Assembly zu erstellen. Es scheint die Kopplung in beiden Richtungen massiv zu erhöhen (Testcode in der Produktionsbaugruppe, intimes internes Wissen über die Produktionsbaugruppe im Testcode), aber andererseits könnte es bei der Erstellung feingranularer Tests helfen, ohne die öffentliche Schnittstelle zu überladen.
Welche Erfahrungen haben Sie beim Testen mit Friend-Deklarationen gemacht? War es deine Silver Bullet, oder hat der Todesmarsch begonnen?
Danke für den Hinweis auf starke Namensgebung! Ich war mir (noch) nicht dessen bewusst, aber da ich denke, dass alle meine Versammlungen stark nach Veröffentlichung benannt werden müssen, sehe ich das nicht als ein echtes Problem an. –