2008-11-20 4 views
3

Это может или не может быть проблема мульти-интерфейс, но я делаю что-то вроде этого:Moq мульти-интерфейс вопрос

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, или это связано с несколькими интерфейсами в моем макете или чем-то еще?

+0

Работает с Moq 3.1.416.3 – 2010-08-25 16:31:37

ответ

4

Я нашел эту ссылку: Castle Project Topic

, который, кажется, указывают, что его проблема в DynamicProxy Касла, который используется Moq (и RhinoMocks).

0

Я знаю, что это не ответ как таковой, но он звучит как ошибка в MOQ. Какую версию ты используешь? Я просто попробовал ваш пример с 2.6 (2.6.1014.1), и я не получаю исключения.

+0

Я использую 2.6 (не знаю точной версии, но libs say 2.6) – dviljoen 2008-11-21 14:08:52

+0

Только что проверил еще раз: 2.6.1014.1 – dviljoen 2008-11-21 14:09:24