質問
これはマルチインターフェースの問題である場合とそうでない場合がありますが、私はこのようなことをしています:
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:呼び出しのターゲットによって例外がスローされました。
----&gt; System.TypeInitializationException: 'IInterface1Proxy184f83d417624e05b450fa40c2c5d35c'の型初期化子が例外をスローしました。
----&gt; System.BadImageFormatException:不正な形式のプログラムをロードしようとしました。 (HRESULTからの例外:0x8007000B)
これは正しいExpectコードを持たないことと関係がありますか、それとも私のモック内の複数のインターフェース、または何か他のものに関連していますか?
解決
このリンクを見つけました: 城プロジェクトトピック
Moq(およびRhinoMocks)が使用するCastleのDynamicProxyに問題があることを示しているようです。
他のヒント
これはそれ自体が答えではないことは知っていますが、MOQのバグのように聞こえます。どのバージョンを使用していますか? 2.6(2.6.1014.1)であなたの例を試しましたが、例外は発生しません。
所属していません StackOverflow