moq - comment vérifier que la méthode n'a pas été appelée si la classe avale des exceptions

StackOverflow https://stackoverflow.com/questions/1445745

  •  22-07-2019
  •  | 
  •  

Question

J'essaie de tester une classe assez complexe avec Moq et je rencontre un problème.

J'essaie de vérifier qu'une méthode N'EST PAS appelée, et cela est généralement simple en définissant MockBehavior.Strict, mais dans ce cas, la classe possède son propre mécanisme de génération de rapports d'erreur, de sorte qu'elle supprime l'exception émise par Moq.

La méthode .VerifyAll à la fin du test est également satisfaisante, ce qui est vraiment étrange. Est-ce un bug dans Moq, y a-t-il des solutions de contournement?

J'ai également essayé de mettre en place un rappel sur cette méthode et d'assert.Fail, mais comme elle est avalée, le framework de test (test intégré de VS 2008) n'en est pas informé. .

J'utilise Moq 2.6.1014.1. (n'a pas encore eu le temps de passer à moq 3)

Était-ce utile?

La solution

Eh bien, c’est embarrassant, j’ai réussi à le résoudre.

En 3.0, vous pouvez faire ceci:

mFMXmlC.Verify(f=>f.Put_Queue_Response(It.IsAny<Uri>(), 
                                       It.IsAny<string>(), 
                                       It.IsAny<string>(), 
                                       It.IsAny<object>()), Times.Never());

Vous ne comprenez toujours pas pourquoi VerifyAll n'a pas fonctionné, mais cela semble néanmoins convenir. Je laisserai la question ouverte si quelqu'un d'autre cherche quelque chose de similaire.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top