如何测试RedirectToAction链接的整个控制器调用链?

时间:2011-03-11 14:37:10

标签: asp.net-mvc

我对MVC很新(仅仅2天),但我想知道 - 有没有办法为RedirectToAction链接的整个控制器调用链编写测试?即,一个接一个地测试整个呼叫序列,而无需手动编码每个呼叫。

例如:

MyTestMethod()
{

  var myController = new MyController(someparam1);

  ActionResult action = myController.DoSomething();

  RedirectToAction ar = action as RedirectToAction;

  // loop while the ActionResult is an RedirectToAction
  while (ar!=null)
  {
    // automatically make direct call to next redirect method in 
    // chain, is something like this possible?
    action = ar.NextMethodToCall(ar.NextMethodToCallParam1, ar.NextMethodToCallParam2);

    ar = action as RedirectToAction;
  }

}

因此,要明确的是,这不是单元测试,(它只会测试单个控制器方法返回正确的actionresult),而是测试整个重定向链。

注意 - 因为这只是一种测试方法,所以MVC应用程序在调用时不会运行。 IIS甚至不会安装在测试机器上。

2 个答案:

答案 0 :(得分:1)

您可以在NextMethodToCall()方法中添加一些日志记录/测试逻辑。

答案 1 :(得分:0)

在对MVC进行了一点阅读之后,我意识到我真正需要的是一种更全面的方法来集成测试MVC应用程序而无需安装浏览器或IIS,例如像这样的东西:

http://blog.stevensanderson.com/2009/06/11/integration-testing-your-aspnet-mvc-application/