J'ai du mal à comprendre ce dont j'ai besoin pour me moquer de mes tests afin de montrer que UrlHelper.RouteUrl() renvoie la bonne URL. Cela fonctionne, mais j'aimerais avoir la bonne couverture de test. La viande de la méthode du contrôleur ressemble à ceci:Comment tester UrlHelper.RouteUrl()?
var urlHelper = new UrlHelper(ControllerContext.RequestContext);
return Json(new BasicJsonMessage { Result = true,
Redirect = urlHelper.RouteUrl(new { controller = "TheController",
action = "TheAction",
id = somerecordnumber }) });
Test de l'objet résultat est assez facile, comme ceci:
var controller = new MyController();
var result = controller.DoTheNewHotness());
Assert.IsInstanceOf<JsonResult>(result);
var data = (BasicJsonMessage)result.Data;
Assert.IsTrue(data.Result);
result.Redirect est toujours nulle, car le contrôleur ne sait évidemment rien à propos du routage. Qu'est-ce que je dois faire au contrôleur pour le faire savoir? Comme je l'ai dit, je sais que cela fonctionne quand j'exerce le code de production, mais j'aimerais avoir une assurance de test. Merci de votre aide!
Je ressens votre douleur. Il n'y a aucun moyen de vérifier que vos appels à RouteUrl produiront le résultat souhaité à court d'un test d'intégration. –