我在使用 MvcContrib 的 ShouldMapTo 函数进行路由测试时遇到了预期错误。根据结果,一切都很好,但是助手抛出了一个 AssertionException 并带有一条不幸的稀疏消息。我正在使用 MVC1 和相应的 MvcContirb。
[Test]
public void ThisShouldNotErrorButItDoes()
{
"~/District/ParticipantInfo/1907/2010".Route().Values.ToList().ForEach(r => Console.WriteLine(r.Key + ": " + r.Value));
Console.WriteLine(((Route)"~/District/ParticipantInfo/1907/2010".Route().Route).Url);
"~/District/ParticipantInfo/1907/2010".ShouldMapTo<DistrictController>(c => c.ParticipantInfo(1907, 2010));
}
前两行表明不应抛出异常。我正在映射正确的控制器、操作、districtNumber 和surveyYear 以匹配{controller}/{action}/{districtNumber}/{surveyYear} 的正确路线。
我的路线:
public static void RegisterRoutes(RouteCollection routes)
{
routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
routes.MapRoute(
"Participation",
"{controller}/{action}/{districtNumber}/{surveyYear}",
new { controller = "District", action = "ParticipantInfo" });
routes.MapRoute(
"Default", // Route name
"{controller}/{action}/{id}", // URL with parameters
new { controller = "Home", action = "Index", id = string.Empty }); // Parameter defaults
}
我得到的错误是 MvcContrib.TestHelper.AssertionException : 参数值不匹配。
我已将此追踪到: public static RouteData ShouldMapTo(this RouteData routeData, Expression> action) where TController : Controller
which is inside RouteTestingExtensions.cs
有人对这个有任何线索吗?