I have a COM library that I have to reference in my app and I am trying to mock its interfaces.
I am getting exceptions when I am doing this MockRepository.GenerateMock<IAmAComInterface>();
I don't get exceptions when I do this: MockRepository.GenerateDynamicMockWithRemoting<IAmAComInterface>();
but none of my expectations are verifying.
Am I doing something wrong?
For now, I have a bunch of wrappers for all of my COM interfaces and I am mocking them, but I would really like to not have to wrap everything.
EDIT:
Exceptions with GenerateMock:System.TypeLoadException
With the message of:The type is marked as eligible for type equivalence, but either it has generic parameters, or it is not a structure, COM imported interface, enumeration, or delegate.
When using GenerateDynamicMockWithRemoting test failure always says Expected: 1 Actual: 0 for any expectations on the COM interface.
Using Rhino.Mocks 3.6.
Looks like this is an issue with .NET 4.0's "Type Equivalence". See this for more details: http://code.google.com/p/moq/issues/detail?id=254
The fix (as noted above) is easy by adding:
Castle.DynamicProxy.Generators.AttributesToAvoidReplicating.Add(typeof (TypeIdentifierAttribute));
To your unit test.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With