在asp.net mvc中使用mvcContrib流畅路由测试的问题

时间:2010-10-21 09:58:55

标签: c# asp.net-mvc mvccontrib fluent mvccontrib-testhelper

我在使用MVCContrib Fluent路线测试测试路线时遇到问题。测试失败,应用程序识别路由。

让我解释....

我的注册表中有以下路线(按顺序显示)

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));

测试失败,因为预期为索引,但实际为显示

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

1 个答案:

答案 0 :(得分:2)

您的测试应该是:

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

网址为~/PurchaseUnits/Page1而不是~/PurchaseUnits/Page{page}