在控制器内部使用UrlHelper会中断测试

时间:2013-07-31 14:28:09

标签: asp.net-mvc-4 mocking tdd

我是MVC和TDD的新手,所以请放轻松我!

我有一个需要重定向到另一个动作的动作。为此,我正在构建一个基础uri,如下所示:

UrlHelper u = new UrlHelper(this.ControllerContext.RequestContext);
string baseURI = u.Action("PayPalAuth", "Order");

我已经从PayPal的示例代码中调整了这个(字符串baseURI = Request.Url.Scheme +“://”+ Request.Url.Authority +“/ Order / PayPalAuth?”;)但是我可能没用过为目标行动提出baseURI的最佳方法是什么?

主要问题是,当我从MSTest单元测试中调用操作时,我在ControllerContext上得到一个null异常。

解决此问题的最简单方法是什么?我在SO上发现了类似的问题,但不能真正遵循它们。我想我可能需要使用模拟框架,但不知道从哪里开始!

1 个答案:

答案 0 :(得分:2)

  

解决此问题的最简单方法是什么?

模仿ControllerContext。以下是如何实现这一目标的示例:https://stackoverflow.com/a/32672/29407