سؤال

في ASP.NET MVC، يمكنني الحصول على معلومات حول اختبار الوحدة للمسارات والمسارات المخصصة، لكن لا يمكنني معرفة كيفية إجراء اختبار الوحدة لـ IgnoreRoute.

ways.IgnoreRoute("{resource}.axd/{*pathInfo}");

الكود العملي هو محل تقدير كبير.

إطار عمل ASP.NET MVC (الجزء الثاني):توجيه URL

نصيحة ASP.NET MVC رقم 13 – اختبار الوحدة للمسارات المخصصة الخاصة بك

نصيحة ASP.NET MVC رقم 30 - إنشاء قيود توجيه مخصصة

هل كانت مفيدة؟

المحلول

أود أن أتحقق من أن 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();
}
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top