Pregunta

Así que tengo un montón de clases internas que estoy tratando de burlarme de RhinoMocks. He agregado la siguiente línea a assemblyinfo.cs:

[assembly:InternalsVisibleTo(RhinoMocks.StrongName)]

Sin embargo, esto todavía no me permite burlarme de las clases internas; Recibo el siguiente mensaje de error de NUnit:

  

MyTests.SomeTest:   System.TypeLoadException: Método   'SomeMethod' en tipo   'SomeType504cf40be6b444abfd417dccf5d6752'   de la asamblea   'DynamicProxyGenAssembly2,   Versión = 0.0.0.0, Cultura = neutral,   PublicKeyToken = null 'está anulando un   método que no es visible desde ese   montaje.

Tenga en cuenta que estoy usando la versión 'combinada' de RhinoMocks (en lugar de la opción de descarga 'con ensamblados Castle'). No sé cómo Castle se fusionó con RhinoMocks, pero no debería hacer que mis partes internas sean visibles para RhinoMocks, de manera similar, hacerlo visible para Castle (que es parte de Rhino.Mocks.dll).

¿Fue útil?

Solución

Y así finalmente conseguí algo de tiempo y descubrí que todo lo que tenía que hacer era agregar lo siguiente a AssemblyInfo.cs:

[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]

Otros consejos

Su problema es el hecho de que RhinoMocks genera dinámicamente un ensamblaje con proxys dinámicos. Por lo tanto, hacer que sus partes internas sean visibles para RhinoMocks no ayuda. Las únicas soluciones posibles para su problema que veo son:

  1. Haz públicas las clases de las que deseas burlarte.
  2. Escriba una clase simulada a mano en su ensamblaje de proyectos de prueba y modifique su atributo InternalVisibleTo para otorgarle acceso a su ensamblaje de prueba.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top