Mocking Hilfe? Ich kann nicht finden, was ist das Problem
Frage
Ich habe eine Schnittstelle wie folgt definded:
public interface IDatabase{ void Get<TTypeToFetch> ();}
und wenn ich versuche zu tun:
Mockery mockery = new Mockery();
IDatabase db = mockery.NewMock<IDatabase>();
Ich erhalte die folgende Fehlermeldung:
System.TypeLoadException: System.TypeLoadException: Unterschrift des Körpers und die Erklärung in einer Methodenimplementierung nicht übereinstimmen
Was ist falsch? (Ich bin mit Visual Studio 2008 mit NMock2) Bitte jeder konnte mir eine Antwort geben, ich habe diese bald zu beenden. Vielen Dank, Luisa
Lösung
ich denke, das ein Problem mit NMock sein kann, möglicherweise sogar ein Bug. Der Typ IDatabase
ist nicht generisch, so dass, wenn Sie rufen Get<T>
, verschiedene T
s zur Laufzeit verwendet werden könnten. Aber wenn NMock ist das Mock Erzeugung, es scheint nicht zu verstehen, dass dies der Fall ist, und Kablammo -. Jede Methodensignatur unterscheidet sich je nach Typ Parameter angegeben
Versuchen Sie stattdessen tun:
public interface IDatabase<T> {
void Get<T>();
}
Auch sollte nicht die Art von Get
seine T
, nicht void
?
Andere Tipps
Ich hatte die gleiche Ausnahme mit meiner eigenen Schnittstelle. Wenn i-Schnittstelle ändern Öffentlichkeit alles sein läuft ok.