Moq多接口问题

3

这可能是多接口问题,但我正在做类似于这样的事情:

var mockInterface1 = new Mock<IInterface1>();
var mockInterface2 = mockInterface1.As<IInterface2>();
mockInterface1.Expect( foo => foo.Foo(It.IsAny<IInterface3>() ) );

...

otherObject.DoSomething( (IInterface1)mockInterface2.Object );

在运行时的DoSomething行,我遇到了以下问题:

MyTest (TestFixtureSetUp):System.Reflection.TargetInvocationException:调用目标的异常已被抛出。

----> System.TypeInitializationException:'IInterface1Proxy184f83d417624e05b450fa40c2c5d35c'的类型初始化程序引发了异常。

----> System.BadImageFormatException:尝试加载具有错误格式的程序。(来自HRESULT的异常:0x8007000B)

这是否与我没有正确的Expect代码有关,还是与我模拟中的多个接口相关,还是其他原因?


这在Moq 3.1.416.3版本中有效。 - Ryan Cromwell
2个回答

4
我找到了这个链接:Castle Project Topic。它似乎表明这是Castle的DynamicProxy中的一个问题,该问题被Moq(和RhinoMocks)使用。

我使用Moq 3.0.308.2时也会遇到这个问题。 - Jonathon Watney

0

我知道这不算是一个答案,但这听起来像是 MOQ 的一个 bug。你用的是哪个版本?我刚刚试了一下你的例子,用的是 2.6(2.6.1014.1),我没有遇到异常。


我正在使用2.6版本(不知道确切的版本,但库显示为2.6)。 - dviljoen
刚刚再次检查:2.6.1014.1 - dviljoen

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接