553 votes

Comment vérifier que cette méthode n'a pas été appelée dans Moq?

Comment vérifier que la méthode n’était pas appelée MOQ?

Y a-t-il quelque chose comme AssertWasNotCalled ?

Mise à jour : À partir de la Version 3.0, un nouveau syntaxt peut être utilisé :

658voto

Dann Points 4231

Exécutez une vérification après le test qui a un ensemble d'énumération "Times.Never". par exemple

 _mock.Object.DoSomething()
_mock.Verify(service => service.ShouldntBeCalled(),Times.Never());
 

170voto

Dan Fish Points 1147

Soit, faire votre faux strict donc il échouera si vous appelez une méthode pour laquelle vous n’avez pas un expect

Ou bien, si vous voulez que votre maquette d’être lâche, utilisez le. Lève (Exception)

57voto

Chris Marisic Points 11495

Volé à : http://stackoverflow.com/questions/1073846/need-help-understand-moq-better/1080774#1080774

Une des choses que vous pourriez vouloir tester est que la méthode de rémunération n’est pas appelée lorsqu’une personne âgée de plus de 65 ans est passée à la méthode

12voto

miha Points 1266

En fait, il est préférable de spécifier. AtMost(0) après la déclaration de revenus.

Bien que la « jette » fonctionne aussi, AtMost(0) est mon humble avis plus expressif.

Modifier Cela ne fonctionne pas dans les versions récentes de Moq (depuis au moins 3.1), il convient de préciser dans la `` méthode tel que mentionné dans la réponse.

-6voto

Aaron Digulla Points 143830

Utilisation. AtMostOnce() ;

Après l’essai réel, appelez de nouveau la méthode. Si elle lève une exception, il a été appelé.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X