Moq une méthode void
Je suis en train de travailler sur la façon de cette Maquette (à l'aide de l'Moq cadre) des trucs tout fonctionne, mais je suis devenu un peu confus, avec des méthodes qui retourne void.
L'objet d'origine est la suivante méthodes/propriétés:
void Add(Person entity);
void Save();
IQueryable<Person> Persons;
Les appels de méthode Ajouter InsertOnSubmit
(c'est Linq to sql), et de la méthode d'enregistrement des appels Context.SubmitChanges()
. Les biens de la Personne renvoie la Table<News>
objet.
Je ne suis pas sûr de savoir comment je vais sur se moquant de ces méthodes, cependant, comme je l'ai ne peut évidemment pas utiliser Returns()
.
Ou ma conception de dire que je ne peux pas vraiment se Moquer des objets correctement?
- Sans plus de contexte, il est un peu difficile de donner une bonne réponse.
Vous devez vous connecter pour publier un commentaire.
Cela dépend de ce que vous avez l'intention de test.
Moq peut vous aider de façon significative lorsque vous voulez tester interactions entre la classe en cours d'essai et d'autres classes.
Dans le cas que vous décrivez, vous êtes sans doute le test d'une catégorie à l'aide de la classe avec des méthodes et des propriétés mentionnées ci-dessus. Pour vérifier les interactions que vous voulez vérifier si le
Add
méthode est appelée avec les paramètres attendus, que laSave
méthode est appelée et que lePersons
propriété est référencé pour la lecture des résultats. Ceci peut être réalisé de la manière suivante:Si vous voulez tester quelque chose d'autre et de fournir une stub mise en œuvre de ces méthodes, alors vous pouvez simplement créer un test à la mise en œuvre ou envisager d'utiliser Moq configurations avec des fonctions exprimées comme des lambdas, plutôt que de simples configurations.