Question

Si ce que j'essaie, je viens d'obtenir une exception:

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

Rendre le public interface n'est pas une solution acceptable. Je ne veux pas changer la visiblité de mon API afin de le tester.

Était-ce utile?

La solution 2

J'ai trouvé la réponse à ceci:

NMock2, (et d'autres cadres moqueurs). Est-ce que créer les objets fantaisie dans les ensembles générés dynamiquement. Pour que le cadre moqueur pour créer l'objet fantaisie, les internes doivent être visibles à ces assemblées.

Il suffit d'ajouter les déclarations suivantes à la classe AssemblyInfo.cs pour le module sous test:

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

Autres conseils

Trouvé et documenté la solution.

http://www.rhyous.com/2012/05 / 03 / nmock2-interne / interface

Transforme que la nouvelle version de NMock2 (je l'ai eu ici: NMock2 projet ) seulement besoins un et il est différent.

[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top