Pregunta

Si intento esto, acabo de recibir una excepción:

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

Hacer público interfaz no es una solución aceptable. Yo no quiero para cambiar la visibilidad de mi API con el fin de probarlo.

¿Fue útil?

Solución 2

He encontrado la respuesta a esto:

NMock2, (y otros marcos burlones). Creará los objetos simulados en asambleas generados dinámicamente. Para que el marco de burla para crear el objeto simulado, las partes internas deben ser visibles a estos conjuntos.

Sólo tiene que añadir las siguientes declaraciones a la clase AssemblyInfo.cs para la Prueba de Bajo Módulo:

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

Otros consejos

encontrado y documentado la solución.

http://www.rhyous.com/2012/05 / 03 / nmock2-internal-interfaz /

Resulta que la versión más reciente de NMock2 (lo tengo aquí: NMock2 Proyecto ) sólo las necesidades uno y es diferente.

[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top