J'ai un objet Mock dont j'essaie de configurer la méthode en lançant une exception lorsqu'il est exécuté, pour un cas de test unitaire particulier en utilisant le framework Moq.VerifyAll() avec les jetons <T>() dans Moq
var mockMySvc = new Mock<IMySvc>();
mockMySvc
.Setup(x=>x.SomeMethod())
.Throws<Exception>();
//Execution of some code
//At the assertions
mockMySvc.VerifyAll();
Lors de l'exécution, le code se plaint de tous les expections de ne pas avoir mockMySvc
été atteint, malgré le exception levée. Ai-je manqué quelque chose ou la méthode .VerifyAll()
ne fonctionne pas avec la fonctionnalité .Throws()
.
Dans le cadre de 'someMethod()', j'ai un try catch block. L'essai doit lancer une exception au bloc de capture, et c'est ce que j'obtiens à travers le setup/throws dans mon code. Mon code ne renverrait pas une exception. Ce que vous avez affirmé est une supposition que la méthode jetterait une exception. –
Je comprends maintenant. Exécutez-vous réellement la méthode 'SomeMethod'? Jetez un oeil ici: http://www.syntaxsuccess.com/viewarticle/mock-exceptions-using-moq – FCin
oui, c'est ce que j'essaie de faire - simuler une exception. Je pense que je ne devrais pas vérifier une exception lancée par VerifyAll(), mais plutôt vérifier que le bon type d'exception a été enregistré. Je vous remercie! Cela m'a aidé à comprendre ce que je faisais de mal logiquement. –