断言操作重定向到正确的操作/路线?

Dan*_*nor 6 asp.net-mvc unit-testing

如何执行操作以确保重定向到正确的操作或路线?

Ben*_*man 10

public ActionResult Foo()
{
   return RedirectToAction("Products", "Index");
}

[Test]
public void foo_redirects_to_products_index()
{
   var controller = new BarController();
   var result = controller.Foo() as RedirectToRouteResult;

   if(result == null)
      Assert.Fail("should have redirected");

   Assert.That(result.RouteData.Values["Controller"], Is.EqualTo("Products"));
   Assert.That(result.RouteData.Values["Action"], Is.EqualTo("Index"));

}
Run Code Online (Sandbox Code Playgroud)

  • 在MVC3中,使用result.RouteValues ["..."]. (2认同)