Unit test RedirectToRouteResult
В моем контроллере есть следующий код:
public class MyController : BaseController
{
public ActionResult MyMethod()
{
...
return RedirectToAction("Index", "Dashboard");
}
}
Я хотел бы unit test перенаправить (RedirectToRouteResult).
Я сделал это так:
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());
Итак, мне нужно четыре утверждения, чтобы проверить мой RedirectToRouteResult.
Есть ли более эффективный способ?
Ответы
Ответ 1
Существует более эффективный способ, так как вам не нужно тестировать эти две строки
Assert.IsTrue(result.RouteValues.ContainsKey("action"));
Assert.IsTrue(result.RouteValues.ContainsKey("controller"));
Это утверждения для кода, который вы еще не написали. Вы должны верить, что те, кто пишет этот код, имеют собственные модульные тесты. Если во всех отношениях первые две строки будут ошибочными, ваши два последних утверждения потерпят неудачу.