asp.net-mvc - unit - testing controllers
Prueba unitaria RedirectToRouteResult (1)
Tengo el siguiente código en mi controlador:
public class MyController : BaseController
{
public ActionResult MyMethod()
{
...
return RedirectToAction("Index", "Dashboard");
}
}
Me gustaría probar por unidad este redireccionamiento (RedirectToRouteResult). Lo he hecho de esta manera:
Assert.IsTrue(result.RouteValues.ContainsKey("action"));
Assert.IsTrue(result.RouteValues.ContainsKey("controller"));
Assert.AreEqual("Index", result.RouteValues["action"].ToString());
Assert.AreEqual("Dashboard", result.RouteValues["controller"].ToString());
Así que necesito cuatro aserciones para probar mi RedirectToRouteResult. ¿Hay alguna forma más eficiente?
Hay una forma más eficiente ya que no necesita probar estas dos líneas
Assert.IsTrue(result.RouteValues.ContainsKey("action"));
Assert.IsTrue(result.RouteValues.ContainsKey("controller"));
Esas son afirmaciones para el código que no has escrito. Tienes que confiar en que aquellos que escriben ese código tienen sus propias pruebas de unidad. Si contra todas las probabilidades las dos primeras líneas serían defectuosas, sus dos afirmaciones finales fallarían.