2

J'ai une application Web ASP.NET MVC 2 dans VS 2010 et j'ai décidé d'essayer d'utiliser des tests unitaires MS. Que savez-vous, sur le premier test que j'ai créé, il me donne du chagrin et refuse d'élaborer. J'ai créé une seule classe de test et une seule méthode de test. J'utilise Moq pour créer un HttpContext (incluant Request, Response, Session, QueryString, Formulaire et Cookies). La méthode teste une action sur l'un de mes contrôleurs et une exception se produit dans cette action lorsqu'elle utilise des capacités de liaison de modèle MVC. Cependant ce n'est pas le problème. Lorsque j'exécute le test dans VS, il dit simplement: "Méthode de test [myTestMethodNameHere] a lancé une exception: ..."! Donc, ça ne me donne aucune idée de ce que l'exception est littéralement dit ... à la fin, comme un cliffhanger à la télévision - "... découvrir dans VS 2011, à venir" 8 (Tests d'unité MS dans VS 2010, méthode de test [my method] a émis une exception: ..., WT *?

Débogage le test n'aide pas car il se produit sur la ligne UpdateModel (T) que j'appelle.J'utilise ma propre classe de classeur personnalisée, mais il n'atteint pas le point d'arrêt sur la première ligne de code dans ce cas, l'exception Je suppose que tout ceci est une question de longue haleine: est-ce qu'il y a une configuration ou un code qui doit être écrit pour que le framework de test d'unité MS me montre l'exception dans les résultats du test? fenêtre, est-ce moi ou est-ce que cela ressemble à un problème de MS que d'autres ont eu?

Toute aide très appréciée, Peter

Répondre

3

Cliquez avec le bouton droit sur le test ayant échoué dans le volet Résultats de test, puis cliquez sur Afficher les détails du résultat du test. Vous recevrez un document qui spécifie l'exception, son message et la trace de la pile.

Puisque vous utilisez Moq, je devine le type sera MoqVerificationException - MSTest malheureusement, ne ramassez pas de la même manière qu'il ramasse AssertFailedExceptions, donc il no nice error messages ...

+0

LOL - C'était il. Il a montré l'exception exacte (référence Null). J'avais écrit un test NUnit et trouvé l'exception avant de voir ça, ha. Hmmm VS 2010 méthode d'affichage pour la question n'est tout simplement pas très agréable. Un double-clic dans le volet des résultats vous amène à une ligne de code plutôt que d'afficher les détails de l'échec. – Peter

+0

Si vous testez avec NUnit, je recommande vraiment d'utiliser un autre lanceur de test que MSTest. Après avoir compris comment utiliser TestDriven.Net (devinez leur site web?;) Runner intégré dans Visual Studio (c'était vraiment facile - je suis le fou ici ...) J'ai décidé hier seulement de migrer mes tests vers NUnit et utilisez cela à la place. Vous obtiendrez les bons messages d'erreur que vous obtenez de MSTest pour AssertFailedException pour des charges d'autres types aussi - parmi eux, la NUnit AssertionException. –

+0

J'essayais d'utiliser les MSTests lorsque j'ai posté l'erreur. Mais j'ai ajouté un test NUnit, puis j'ai lancé l'application NUnit GUI séparément et l'ai exécutée sur mon fichier Tests.DLL pour obtenir l'exception. J'ai vu lors de la création de mes projets que je pouvais choisir un autre framework de test mais j'avais pour objectif d'essayer les MSTests ainsi utilisés par défaut. Maintenant, cependant, je ne peux pas trouver où je voudrais passer à l'aide de NUnit. Bien que j'ai maintenant le "doh!" moment souligné par votre première réponse ce n'est pas un problème plus agréable à savoir. – Peter

Questions connexes