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 コードを持っていないことと関係がありますか?それとも、モックの複数のインターフェイスに関連していますか?

4

2 に答える 2

4

このリンクを見つけました: Castle Project Topic

Moq(およびRhinoMocks)で使用されるCastleのDynamicProxyの問題であることを示しているようです。

于 2008-11-21T14:12:27.573 に答える
0

これ自体は答えではないことはわかっていますが、MOQ のバグのように聞こえます。どのバージョンを使用していますか? 私はあなたの例を 2.6 (2.6.1014.1) で試しましたが、例外は発生しません。

于 2008-11-20T16:48:23.903 に答える