質問

ASP.NET MVCでは、ルートおよびカスタムルートの単体テストに関する情報を取得できますが、IgnoreRouteの単体テストの実行方法がわかりません。

routes.IgnoreRoute(" {resource} .axd / {* pathInfo}");

実用的なコードは大歓迎です。

ASP.NET MVCフレームワーク(パート2):URLルーティング

ASP.NET MVCヒント#13–カスタムルートのユニットテスト

ASP.NET MVCヒント#30–カスタムルート制約の作成

役に立ちましたか?

解決

無視されたパスに一致するルートの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();
}
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top