Domanda

Se provo questo, ottengo solo un'eccezione:

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

Rendere il pubblico interfaccia non è una soluzione accettabile. Io non voglio cambiare il visiblity del mio API al fine di testarlo.

È stato utile?

Soluzione 2

Ho trovato la risposta a questa:

NMock2, (e altri framework beffardi). Creerà gli oggetti mock in assembly generati in modo dinamico. Affinché il quadro di scherno per creare l'oggetto fittizio, gli interni devono essere visibili a questi gruppi.

Basta aggiungere le seguenti dichiarazioni alla classe AssemblyInfo.cs per il modulo in prova:

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

Altri suggerimenti

Trovato e documentata la soluzione.

http://www.rhyous.com/2012/05 / 03 / nmock2-interno-interfaccia /

Si scopre che la versione più recente di NMock2 (ho ottenuto qui: NMock2 progetto ) solo le esigenze uno ed è diverso.

[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top