0

MVCContribFluentルートテストを使用したルートのテストに問題があります。テストは失敗しますが、アプリケーションはルートを認識します。

説明させてください…。

私の登録簿には次のルートがあります(順番に表示されています)

routes.MapRoute(
                "PurchaseUnitsPaged",
                "PurchaseUnits/Page{page}",
                new { controller = "PurchaseUnits", action = "Index", page = 1 },
                new { page = @"\d+" }
                );


routes.MapRoute(
                "PurchaseUnit",
                "PurchaseUnits/{unitname}",
                new { controller = "PurchaseUnits", action = "Show" }
            );

ルーティングパイプラインは、ルート1のインデックスとルート2の表示にリクエストを正しく送信します。

ただし、MVCContrib流暢なクラスを使用してルーティングをテストすると、ルート1のテストが失敗します。

テストは次のとおりです。

"~/PurchaseUnits/Page{page}".ShouldMapTo<PurchaseUnitsController>(x=> x.Index(1));

期待値はIndexですが、実際はShowであるため、テストは失敗します。

流暢なクラスが正しいルーティングを識別していないのに、MVCルーティングが実際のアプリケーションで機能する理由についてのアイデアはありますか?または、完全にテストできるようにテストまたはルートを微調整する方法についての提案に失敗しましたか?

4

1 に答える 1

2

テストは次のようになります。

"~/PurchaseUnits/Page1".ShouldMapTo<PurchaseUnitsController>(x=> x.Index(1));

URLはであり、では~/PurchaseUnits/Page1ありません~/PurchaseUnits/Page{page}

于 2010-10-21T11:22:13.600 に答える