ASP.NET MVCでIgnoreRouteのユニットテストを行う方法
-
03-07-2019 - |
質問
ASP.NET MVCでは、ルートおよびカスタムルートの単体テストに関する情報を取得できますが、IgnoreRouteの単体テストの実行方法がわかりません。
routes.IgnoreRoute(" {resource} .axd / {* pathInfo}");
実用的なコードは大歓迎です。
ASP.NET MVCフレームワーク(パート2):URLルーティング
解決
無視されたパスに一致するルートのRouteData上のRouteHandlerがStopRoutingHandlerタイプであることを確認します。
[TestMethod]
public void TestIgnoredRoute()
{
// Arrange
var routes = new RouteCollection();
GlobalApplication.RegisterRoutes(routes);
// Act
var context = new FakeHttpContext("~/some.axd/path");
var routeData = routes.GetRouteData(context);
// Assert
Assert.IsInstanceOfType( routeData.RouteHandler, typeof(StopRoutingHandler) );
}
他のヒント
MvcContrib testhelperクラス(http://nuget.org/packages/MvcContrib.Mvc3.TestHelper-ci)を使用する場合、さらに簡単に実行できます:
[TestMethod]
public void TestIgnoredRoute()
{
// Arrange
RouteTable.Routes.Clear();
// Act
GlobalApplication.RegisterRoutes(RouteTable.Routes);
// Assert
"~/some.axd/path".ShouldBeIgnored();
}
所属していません StackOverflow