كيف يتم اختبار الوحدة لـ IgnoreRoute في ASP.NET MVC
-
03-07-2019 - |
سؤال
في ASP.NET MVC، يمكنني الحصول على معلومات حول اختبار الوحدة للمسارات والمسارات المخصصة، لكن لا يمكنني معرفة كيفية إجراء اختبار الوحدة لـ IgnoreRoute.
ways.IgnoreRoute("{resource}.axd/{*pathInfo}");
الكود العملي هو محل تقدير كبير.
إطار عمل ASP.NET MVC (الجزء الثاني):توجيه URL
نصيحة ASP.NET MVC رقم 13 – اختبار الوحدة للمسارات المخصصة الخاصة بك
المحلول
أود أن أتحقق من أن RouteHandler الموجود على RouteData للمسار المطابق للمسار الذي تم تجاهله هو من النوع StopRoutingHandler؛
[TestMethod]
public void TestIgnoredRoute()
{
// Arrange
var routes = new RouteCollection();
GlobalApplication.RegisterRoutes(routes);
// Act
var context = new FakeHttpContext("~/some.axd/path");
var routeData = routes.GetRouteData(context);
// Assert
Assert.IsInstanceOfType( routeData.RouteHandler, typeof(StopRoutingHandler) );
}
نصائح أخرى
إذا كنت تستخدم فئة testhelper MvcContrib (http://nuget.org/packages/MvcContrib.Mvc3.TestHelper-ci)، يمكنك simpifly أبعد من ذلك:
[TestMethod]
public void TestIgnoredRoute()
{
// Arrange
RouteTable.Routes.Clear();
// Act
GlobalApplication.RegisterRoutes(RouteTable.Routes);
// Assert
"~/some.axd/path".ShouldBeIgnored();
}
لا تنتمي إلى StackOverflow