Las URL de los menús en mis aplicaciones ASP.NET MVC se generan desde el controlador/acciones. Entonces, llaman alASP.NET MVC: Controlador simulado.Url.Action
controller.Url.Action(action, controller)
Ahora, ¿cómo hago esto para que funcione en pruebas unitarias? utilizo MVCContrib con éxito con
var controller = new TestControllerBuilder().CreateController<OrdersController>();
pero lo que trato de hacer con ella consigo controller.Url.Action (acción, controlador) no con NullReferenceException porque Url == null.
Actualización: no se trata de cómo interceptar HttpContext. Hice esto de varias maneras, usando MVCContrib, el ejemplo de falsificación de Scott Hanselman, y también el de http://stephenwalther.com/blog/archive/2008/07/01/asp-net-mvc-tip-12-faking-the-controller-context.aspx. Esto no me ayuda porque necesito saber QUÉ valores falsificar ... ¿es ApplicationPath? ¿Cómo lo configuro? ¿Necesita coincidir con el controlador/acción llamado? Es decir, ¿cómo funciona Url.Action y cómo lo satisfago?
Además, sé que puedo hacer IUrlActionAbstraction e ir con eso ... pero no estoy seguro de querer hacer esto. Después de todo, tengo MVCContrib/Mock full power y ¿por qué necesito otra abstracción?
¿Cuál es su suite de pruebas? –
No vale la pena una respuesta por sí mismo, así que señalaré una respuesta similar: http://bit.ly/aSJ0a –
Sí, utilicé ese enlace y no funcionó. En realidad, probé la versión de Scott y MVCContrib. Lo que trato de entender es qué valores necesito configurar? ¿Qué usa realmente Url.Action()? Es decir. en el enlace que proporcionó hay una versión de Moq que configura MUCHAS variables ... ¿TODAS son necesarias? Intenté todos ellos sin suerte. – queen3