Unter Verwendung von "Freund" -Deklarationen für Unit-Tests. Schlechte Idee

[Natürlich ist die Frage nicht auf eine bestimmte "Freund" -Implementierung beschränkt, zögern Sie jedoch nicht, auf Implementierungsspezifikationen hinzuweisen, wenn dies relevant ist]

ls ich die unbeantworteten Fragen durchlas, stieß ich auf dasInternalsVisibleTo Attribut:

Gibt an, dass Typen, die normalerweise nur in der aktuellen Assembly sichtbar sind, für eine andere Assembly sichtbar sind.

Das C # -Programmierhandbuch auf MSDN hat einen AbschnittFriend Assemblies beschreibt, wie das Attribut verwendet wird, um die Verwendung von @ zu ermöglichinternal Methoden und Typen zu einer anderen Assembly.

Ich frage mich, ob es eine gute Idee wäre, hiermit eine "versteckte" Schnittstelle für die Instrumentierung einer Bibliothek zu erstellen, die von der Baugruppe für Komponententests verwendet wird. Es scheint die Kopplung in beide Richtungen massiv zu erhöhen (Testen von Code in der Produktionsassembly, vertrautes internes Wissen über die Produktionsassembly in Testcode), aber es kann auch hilfreich sein, feinkörnige Tests zu erstellen, ohne die öffentliche Schnittstelle zu überfrachte

Wie sind Ihre Erfahrungen mit der Verwendung von Friend-Deklarationen beim Testen? War es Ihre Silberkugel, oder hat sie den Todesmarsch begonnen?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage