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