最初に行う必要があるのは、3 つの文字列を取得し、それをルーティング システムを介して渡すことができる URL に変換することです。これを行う方法は、作成したルートによって異なります。ルート テーブルに典型的なデフォルト ルートがあるとします。
context.MapRoute(
"Admin_default",
"Admin/{controller}/{action}/{id}",
new { controller="Home", action = "Index", id = UrlParameter.Optional }
);
次に、URL パターン「{area}/{controller}/{action}/{id}」を使用して URL を構築する必要があります。あなたの場合、一部の文字列が空になる可能性があるため、URL にすべてのセグメントが含まれていない可能性があります。たとえば、Area="Admin" で Controller と Action が空の場合、このルートに基づく URL は次のようになります。
~/Admin
もちろん、これにより、システム内のルートが既にわかっている場合、なぜルートを調べてデフォルトを取得できないのかという疑問が生じます。
テストする URL を取得したら、HttpContentBase オブジェクトのモックを作成し、RouteTable.Routes.GetDate(httpContext) を介して実行する必要があります。構成要素の HttpRequestBase または HttpResponseBase クラスの多くを実際にモックする必要がないため、これを行うための単純なボイラー プレート コードがあります。たとえば、Moq モック フレームワークを使用して HttpContextBase オブジェクトをモックする例については、こちらを参照してください。