Mocking aide? Je ne peux pas trouver ce qui est le problème
Question
J'ai une interface definded comme ceci:
public interface IDatabase{ void Get<TTypeToFetch> ();}
et quand j'essaie de faire:
Mockery mockery = new Mockery();
IDatabase db = mockery.NewMock<IDatabase>();
Je reçois l'erreur suivante:
System.TypeLoadException: System.TypeLoadException: Signature du corps et de la déclaration dans une mise en œuvre de la méthode ne correspond pas
Qu'est-ce qui ne va pas? (J'utilise Visual Studio 2008 avec nmock2) S'il vous plaît tout le monde pourrait me donner une réponse, je dois finir ce bientôt. Merci, Luisa
La solution
Je pense que cela peut être un problème avec NMock, peut-être même un bug. Le type IDatabase
n'est pas générique, donc quand vous invoquez Get<T>
, différentes T
s pourrait être utilisé lors de l'exécution. Mais quand NMock génère la maquette, il ne semble pas comprendre que c'est le cas, et Kablammo -. Chaque signature de la méthode est différente, en fonction du paramètre de type fourni
Essayez de faire ceci:
public interface IDatabase<T> {
void Get<T>();
}
En outre, ne doit pas le type de Get
être T
, pas void
?
Autres conseils
J'ai eu la même exception avec ma propre interface. Quand je change l'interface pour être tout public circule bien.