Comment puis-je tester quelle vue a été rendue à partir d'une action du contrôleur si ce que j'obtiens est un T4MVC_ActionResult? Dans des circonstances normales, je devrais être en mesure d'utiliser directement les méthodes de TestHelper, comme dans the examples:Comment tester les vues rendues lors de l'utilisation de T4MVC avec TestHelper?
pooController.Details().AssertViewRendered().ForView("Details")
... mais, puisque par T4MVC je reçois un T4MVC_ActionResult au lieu d'un ViewResult, la partie AssertViewRendered<>().ForView("Details")
échoue. Quelle alternative ai-je si je veux tester quelle vue a été invoquée?
MISE À JOUR:
Voici le code de test:
[TestMethod]
public void Theme_Controller_Details_Action_Returns_Details_View()
{
var builder = new TestControllerBuilder();
var mockThemeRepository = new Mock<IThemeRepository>();
var themeController = builder.CreateController<Evalgrid.Website.Controllers.ThemeController>(mockThemeRepository.Object);
builder.InitializeController(themeController);
var result = themeController.Details();
result.AssertViewRendered().ForView("Details");
}
J'ai utilisé le débogueur fixant un point d'arrêt après la ligne result
, et son type de variable est T4MVC_ActionResult, tandis que themeController est Evalgrid.Website.controllers.ThemeController
. Notez que j'ai utilisé le nom complet du contrôleur.
Je reçois ceci:
Résultat attendu pour être de type ViewResult. Il est en fait de type T4MVC_ActionResult.
Je ne sais pas ce qui se passe.
Étrange. D'où vient TestControllerBuilder? –
@David TestControllerBuilder vient de MvcContrib.TestHelper http://mvccontrib.codeplex.com/wikipage?title=TestHelper#Examples –
Ok, je vais devoir me familiariser avec cela et enquêter. Je reviendrai vers toi. –