你需要做的第一件事就是把你的三個字符串轉換成一個可以通過路由系統傳遞的URL。你如何做到這一點取決於你創建的路線。讓我們假設你在你的路由表中的典型的默認路由:
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { controller="Home", action = "Index", id = UrlParameter.Optional }
);
然後,你將不得不使用URL模式「{面積}/{控制器}/{行動}/{ID}」建立你的URL。在你的情況下,一些字符串可能是空的,所以你的URL不會包含所有的段。例如,如果面積=「管理員」和控制器和動作都是空的,您的網址,根據這條路線,將是:
~/Admin
當然,這引起的,如果你已經知道的路由問題你係統,爲什麼你不能通過查看路線來獲得默認值。
一旦你有你想測試的URL,你將需要創建一個HttpContentBase對象的模擬,然後通過RouteTable.Routes.GetDate(httpContext)運行它。有直接的鍋爐板代碼來做到這一點,因爲你真的不需要嘲笑組成HttpRequestBase或HttpResponseBase類的大部分。例如,有關使用Moq模擬框架模擬HttpContextBase對象的示例,請參見here。
帕諾斯,我試着回答你的問題。如果你可以提供更多關於你爲什麼試圖做這樣的事情的背景以及爲什麼你需要這樣做,那會很有幫助。 –