最佳答案
我的一个控制器操作(在 Ajax 请求中调用的一个操作)是向客户端返回一个 URL,这样它就可以执行重定向。我正在使用 Url.RouteUrl(..)
,在我的单元测试期间,由于 Controller.Url
参数没有预先填充,这个操作失败了。
我尝试了很多方法,其中包括尝试存根 UrlHelper
(失败了) ,手动创建一个具有存根 HttpContextBase
(在 RouteCollection.GetUrlWithApplicationPath
调用中失败了)的 RequestContext
的 UrlHelper
。
我在谷歌上搜索了一下,但实际上没有找到任何关于这个主题的内容。我是否在控制器操作中使用 Url.RouteUrl
做了一些非常愚蠢的事情?有更简单的办法吗?
更糟糕的是,我希望能够在我的单元测试中测试返回的 URL ——事实上我只对知道它重定向到正确的路由感兴趣,但是因为我返回的是一个 URL 而不是一个路由,我希望能够控制被解析的 URL (例如,使用一个截断的 RouteCollection
)——但是我很高兴我的测试能够通过。