J'utilise MVC 2 avec les contribs MVC et Rhino.ASP.NET MVC 2: Ce qu'il faut tester dans les vues et les contrôleurs
J'ai besoin d'aide. Ce fut un week-end douloureux. J'ai essayé de trouver de bons articles sur comment faire des tests sur les contrôleurs en utilisant MVC contrib. Et personne n'a de réponses décentes pour moi. Je veux savoir ce que j'ai besoin de tester sur une vue et dans les contrôleurs? Est-ce que cet appareil est un test ou un test d'intégration? Permettez-moi de décrire mon scénario de base: J'ai une vue Index qui a une grille dessus. Dans cette grille, j'ai une liste de nouvelles. Dans cette grille, dans la dernière colonne de chaque ligne, se trouve un lien Modifier qui amène l'utilisateur à la vue EditNews pour modifier l'élément d'actualité sélectionné. Dans cette vue Index, il existe également un bouton Ajouter des nouvelles qui amène l'utilisateur à la vue CreateNews. Maintenant, étant donné le scénario actuel, quels tests dois-je écrire? Pourriez-vous, s'il vous plaît, indiquer s'il s'agit de tests unitaires ou de tests d'intégration. Ai-je besoin d'écrire un test pour le lien Modifier? Dois-je écrire un test pour le bouton Ajouter des nouvelles? Dois-je écrire un test pour vérifier si l'utilisateur est autorisé sur cette page d'index? Voilà ce que j'ai actuellement:
[Test]
public void Index_Should_Redirect_To_Error_View_When_User_Does_Not_Have_Permission()
{
}
[Test]
public void Index_Should_Log_Exception_When_User_Does_Not_Have_Permission()
{
}
[Test]
public void Index_Should_Return_Default_View()
{
// Act
var result = newsController.Index();
// Assert
result
.AssertViewRendered()
.ForView("Index");
}
MISE À JOUR: Voici ma méthode d'action Index:
public ActionResult Index()
{
IEnumerable<News> news = newsRepository.FindAll();
return View(news);
}
Tous les articles décents ou exemple de code serait apprécié. Aussi sur MVC contrib, les exemples de code ne sont pas très utiles. J'aimerais entendre autant d'opinions que possible.
Merci.
Voir mise à jour. Je ne comprends toujours pas ça. Les tests que j'ai mentionnés ci-dessus, sont-ils dans la ligne jusqu'à présent? Quoi d'autre auriez-vous testé et testé? Si vous pouviez fournir quelques échantillons, j'apprécierais cela. –
@Brendan, l'action 'Index' de votre contrôleur doit être testée à l'unité. Voir mon exemple de code pour cela. Cela ressemble beaucoup à ce que je vous ai montré. –
Merci. Juste une autre question novice, ne faites-vous pas beaucoup dans un test? Vous vérifiez si la vue correcte a été rendue, et vous effectuez un appel de référentiel? Ne devraient-ils pas être deux tests distincts? Aussi, quand vérifieriez-vous que GetNews a été appelé? Dans ce même test? Ou séparé? –