Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Mocking internal classes with RhinoMocks

So I have a bunch of internal classes which I am trying to mock with RhinoMocks. I have added the following line to assemblyinfo.cs:

[assembly:InternalsVisibleTo(RhinoMocks.StrongName)]

However, this still does not allow me to mock internal classes; I get the following error message from NUnit:

MyTests.SomeTest: System.TypeLoadException : Method 'SomeMethod' on type 'SomeType504cf40be6b444abfd417dccf5d6752' from assembly 'DynamicProxyGenAssembly2, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null' is overriding a method that is not visible from that assembly.

Note that I am using the 'merged' version of RhinoMocks (rather than the download option 'with Castle assemblies'). I don't know how Castle was merged into RhinoMocks but shouldn't making my internals visible to RhinoMocks, similarly make it visible to Castle (which is part of the Rhino.Mocks.dll)?

like image 737
jpoh Avatar asked Dec 13 '22 03:12

jpoh


1 Answers

And so I finally got some time and worked out that all I needed to do was to add the following to AssemblyInfo.cs:

[assembly: InternalsVisibleTo("DynamicProxyGenAssembly2")]
like image 128
jpoh Avatar answered Jan 21 '23 21:01

jpoh