Frage

Wenn ich das versuche, bekomme ich nur eine Ausnahme:

System.TypeLoadException : Access is denied: 'Namespace.IInternalInterface'.

die Schnittstelle öffentlich zu machen ist keine akzeptable Lösung. Ich will nicht die visiblity meiner API, um es zu testen, um zu ändern.

War es hilfreich?

Lösung 2

fand ich die Antwort auf diese Frage:

NMock2, (und andere spöttische Frameworks). Werden die Mock-Objekte in dynamisch generierten Baugruppen erstellen. Damit die Mockframework das Mock-Objekt zu erstellen, sollten die Interna diese Baugruppen sichtbar sein.

Fügen Sie einfach die folgenden Erklärungen zu der AssemblyInfo.cs-Klasse für das Modul unter Test:

// Allow unit test and mock assemblies to see internal members.
[assembly: InternalsVisibleTo("MyAssembly.UnitTest")]
[assembly: InternalsVisibleTo("NMock2")]
[assembly: InternalsVisibleTo("Mocks")]
[assembly: InternalsVisibleTo("MockObjects")]

Andere Tipps

Gefunden und die Lösung dokumentiert.

http://www.rhyous.com/2012/05 / 03 / NMock2-internal-Schnittstelle /

Es stellte sich heraus, dass die neuere Version von NMock2 (ich es hier habe: NMock2 Projekt ) nur Bedürfnisse ein und es ist anders.

[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top