route net name mvc attribute asp asax asp.net-mvc-2 nunit mvccontrib-testhelper

asp.net mvc 2 - net - Problema con MvcContrib TestHelper Fluent Route Testing y Specific HttpVerbs



routing in asp net mvc (1)

Estoy intentando usar la API de prueba de ruta con fluidez MvcContrib TestHelper, pero estoy viendo un comportamiento extraño. El método de extensión .WithMethod (HttpVerb) no parece ejecutarse como se esperaba. Aquí está mi controlador que muestra (2) acciones (de nombre idéntico) que aceptan diferentes HttpVerbs:

[HttpGet] public ActionResult IdentifyUser() { return View(new IdentifyUserViewModel()); } [HttpPost] public ActionResult IdentifyUser(IdentifyUserInputModel model) { return null; }

Y aquí está la prueba que debe asignarse a la acción con el atributo [HttpPost]:

MvcApplication.RegisterRoutes(RouteTable.Routes); var routeData = "~/public/registration/useridentification/identifyuser" .WithMethod(HttpVerbs.Post) .ShouldMapTo<UserIdentificationController>(x => x.IdentifyUser(null));

Aunque el POST HttpVerb se especifica en mi prueba, siempre se dirige al método HttpGet. Incluso puedo comentar la acción aceptando HttpPost en mi controlador y todavía tengo el pase de prueba.

¿Hay algo que me falta aquí?


Puede tener que ver con la forma en que está registrando sus rutas. Normalmente creo una clase que solo hace eso. Entonces, antes de cualquier prueba como las anteriores, me aseguro de configurar mi aparato de prueba de manera apropiada.

[TestFixtureSetUp] public void TestFixtureSetUp() { RouteTable.Routes.Clear(); new RouteConfigurator().RegisterRoutes(RouteTable.Routes); }

Supongo que dado que el RouteTable los maneja estáticamente, es posible que tenga problemas al no agregar, no borrar o agregar demasiadas rutas según las ejecuciones de prueba.