Одно из моих действий контроллеров, которое вызывается в Ajax-запросе, возвращает URL-адрес клиентской стороне, чтобы он мог выполнить перенаправление. Я использую Url.RouteUrl(..)
, и во время моих модульных тестов это не удается, поскольку параметр Controller.Url
не заполнен заранее.
Я много чего пробовал, в том числе пытался заглушить UrlHelper
(что не удалось), вручную создав UrlHelper
с RequestContext
, у которого заглушка HttpContextBase
(не удалось при вызове RouteCollection.GetUrlWithApplicationPath
).
Я искал в Google, но практически ничего не нашел по этому вопросу. Я делаю что-то невероятно глупое, используя Url.RouteUrl
в своем действии контроллера? Есть ли более простой способ?
Чтобы сделать это еще хуже, я хотел бы иметь возможность проверить возвращенный URL-адрес в моем модульном тесте - на самом деле меня интересует только то, что он перенаправляет на правильный маршрут, но так как я возвращаю URL-адрес вместо маршрута я хотел бы управлять разрешенным URL-адресом (например, с помощью пометки RouteCollection
), но я буду рад начать тестирование с начала.