我对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甚至不会安装在测试机器上。
答案 0 :(得分:1)
您可以在NextMethodToCall()
方法中添加一些日志记录/测试逻辑。
答案 1 :(得分:0)
在对MVC进行了一点阅读之后,我意识到我真正需要的是一种更全面的方法来集成测试MVC应用程序而无需安装浏览器或IIS,例如像这样的东西:
http://blog.stevensanderson.com/2009/06/11/integration-testing-your-aspnet-mvc-application/