2008-11-20 5 views
3

Cela peut ou peut ne pas être un problème multi-interface, mais je fais quelque chose comme ceci:Moq question multi-interfaces

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

... 

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

Sur la ligne DoSomething lors de l'exécution, je reçois:

MyTest (TestFixtureSetUp): System.Reflection.TargetInvocationException: Une exception a été levée par la cible d'un appel.

----> System.TypeInitializationException: l'initialiseur de type pour 'IInterface1Proxy184f83d417624e05b450fa40c2c5d35c' a émis une exception.

----> System.BadImageFormatException: Une tentative de chargement d'un programme avec un format incorrect a été effectuée. (Exception de HRESULT: 0x8007000B)

Est-ce que ceci a quelque chose à voir avec mon ne pas avoir le bon code d'attente, ou est-ce lié aux multiples interfaces dans ma maquette, ou quelque chose d'autre?

+0

Cela fonctionne à partir de Moq 3.1.416.3 –

Répondre

4

Je trouve ce lien: Castle Project Topic

qui semble indiquer que son problème dans DynamicProxy, qui est utilisé par Moq (et RhinoMocks) du château.

+0

Je reçois cela aussi bien en utilisant Moq 3.0. 308.2. –

0

Je sais que ce n'est pas une réponse en tant que telle, mais cela ressemble à un bug dans MOQ. Quelle version utilisez-vous? Je viens d'essayer votre exemple avec 2.6 (2.6.1014.1) et je ne reçois pas d'exception.

+0

J'utilise 2.6 (je ne connais pas la version exacte, mais libs dire 2.6) – dviljoen

+0

Juste vérifié à nouveau: 2.6.1014.1 – dviljoen