Ada*_*dam 5 .net c# com rhino-mocks
我有一个COM库,我必须在我的应用程序中引用,我试图模拟其接口.
我这样做时会遇到异常 MockRepository.GenerateMock<IAmAComInterface>();
当我这样做时,我没有例外:MockRepository.GenerateDynamicMockWithRemoting<IAmAComInterface>();但我的期望都没有验证.
难道我做错了什么?
现在,我的所有COM接口都有一堆包装器,我正在嘲笑它们,但我真的不想包装所有东西.
编辑:
GenerateMock的例外:
System.TypeLoadException
使用以下消息:
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.
当使用GenerateDynamicMockWithRemoting测试失败时,总是说预期:1实际:0表示对COM接口的任何期望.
使用Rhino.Mocks 3.6.
Pat*_*ele 13
看起来这是.NET 4.0的"Type Equivalence"的问题.有关详细信息,请参阅此处:http://code.google.com/p/moq/issues/detail?id = 254
修复(如上所述)很容易添加:
Castle.DynamicProxy.Generators.AttributesToAvoidReplicating.Add(typeof (TypeIdentifierAttribute));
Run Code Online (Sandbox Code Playgroud)
到您的单元测试.