C# asp.net mvc中mvcContrib fluent路由测试的问题

C# asp.net mvc中mvcContrib fluent路由测试的问题,c#,asp.net-mvc,mvccontrib,fluent,mvccontrib-testhelper,C#,Asp.net Mvc,Mvccontrib,Fluent,Mvccontrib Testhelper,我对使用MVCContrib Fluent路由测试的测试路由有问题。测试失败,但应用程序识别路由 让我解释一下 我的登记簿中有以下路线(按顺序显示) 路由管道正确地向路由1的索引和路由2的显示发送请求 但是,当我使用MVCContrib fluent类测试路由时,路由1的测试失败 测试是: "~/PurchaseUnits/Page{page}".ShouldMapTo<PurchaseUnitsController>(x=> x.Index(1)); “~/Purchase

我对使用MVCContrib Fluent路由测试的测试路由有问题。测试失败,但应用程序识别路由

让我解释一下

我的登记簿中有以下路线(按顺序显示)

路由管道正确地向路由1的索引和路由2的显示发送请求

但是,当我使用MVCContrib fluent类测试路由时,路由1的测试失败

测试是:

"~/PurchaseUnits/Page{page}".ShouldMapTo<PurchaseUnitsController>(x=> x.Index(1));
“~/PurchaseUnits/Page{Page}”。应该映射到(x=>x.Index(1));
测试失败,因为预期是索引,但实际是显示

关于为什么fluent类没有识别正确的路由,mvc路由在实际应用中仍然有效,有什么想法吗?或者没有任何关于如何调整我的测试或路线以允许我进行全面测试的建议?

您的测试应该是:

"~/PurchaseUnits/Page1".ShouldMapTo<PurchaseUnitsController>(x=> x.Index(1));
“~/PurchaseUnits/Page1”。应该映射到(x=>x.Index(1));

url是
~/PurchaseUnits/Page1
,而不是
~/PurchaseUnits/Page{Page}

为答案干杯,达林,行得通。但是我有点困惑,因为我使用以下测试来测试问题中提到的第二个路由“~/PurchaseUnits/{unitname}”.route().ShouldMapTo(x=>x.Show({unitname}”);这是因为“{unitname}”与“{unitname}”匹配。如果您最初的测试是“~/PurchaseUnits/Page{Page}”,那么应该映射到(x=>x.Index(“{Page}”);它(edit:will)不起作用,但显然索引需要一个int,而Show需要一个字符串。实际上,仔细看代码,“~/PurchaseUnits/Page{Page}”与第一个路由不匹配,因为值“{Page}”与“\d+”不匹配,而是会下降到下一个路由PurchaseUnitsController.Show(“Page{Page}”)。
"~/PurchaseUnits/Page1".ShouldMapTo<PurchaseUnitsController>(x=> x.Index(1));