我在使用MvcContrib的ShouldMapTo函數進行路由測試時遇到了預期的錯誤。根據結果,一切正常,但助手拋出一個AssertionException與一個不幸的稀疏消息。我使用MVC1和相應的MvcContirb。MvcContrib ShouldMapTo TestHelper意外拋出AssertionException
[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:對於參數不匹配的價值。
我跟蹤下來到:公共靜態的RouteData ShouldMapTo(此的RouteData的RouteData,表達>動作) 其中TController:控制器
這是RouteTestingExtensions.cs
沒有人對此有什麼線索一?
感謝您的答覆。我忘了這件事。最終的答案是,一旦我們下載了MvcContrib的源代碼並鏈接到了源代碼而不是二進制文件,這個錯誤就不再被拋出。我們認爲它在我們使用的.dll版本中一定是一些奇怪的錯誤,所以我們開始使用MvcContrib.dll的新版本 – ARM 2011-02-19 05:14:52