Pergunta

Esta pode ou não ser um problema multi-interface, mas eu estou fazendo algo parecido com isto:

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

...

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

Na linha de DoSomething em tempo de execução eu recebo:

MyTest (TestFixtureSetUp): System.Reflection.TargetInvocationException:. Exceção foi acionada pelo destino de uma invocação

----> System.TypeInitializationException:. O inicializador de tipo para 'IInterface1Proxy184f83d417624e05b450fa40c2c5d35c' emitiu uma exceção

----> System.BadImageFormatException: Foi feita uma tentativa de carregar um programa com um formato incorreto. (Exceção de HRESULT: 0x8007000B)

Será que isso tem algo a ver com a minha não ter o direito de esperar de código, ou é relacionado com as múltiplas interfaces no meu simulada, ou algo mais?

Foi útil?

Solução

Eu encontrei este link: Castelo Projeto Tópico

o que parece indicar que é um problema em DynamicProxy do Castelo, que é usado por Moq (e RhinoMocks).

Outras dicas

Eu sei que isto não é uma resposta como tal, mas soa como um bug no MOQ. Qual versão você está usando? Eu apenas tentei o seu exemplo, com 2.6 (2.6.1014.1) e eu não recebo uma exceção.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top