Я тестирую свои маршруты в ASP.NET MVC 2. Я использую MSTest, и я также использую области.
[TestClass]
public class RouteRegistrarTests
{
[ClassInitialize]
public static void ClassInitialize(TestContext testContext)
{
RouteTable.Routes.Clear();
RouteTable.Routes.IgnoreRoute("{resource}.axd/{*pathInfo}");
RouteTable.Routes.IgnoreRoute("{*favicon}", new { favicon = @"(.*/)?favicon.ico(/.*)?" });
AreaRegistration.RegisterAllAreas();
routes.MapRoute(
"default",
"{controller}/{action}/{id}",
new { controller = "Home", action = "Index", id = UrlParameter.Optional }
);
}
[TestMethod]
public void RouteMaps_VerifyMappings_Match()
{
"~/".Route().ShouldMapTo<HomeController>(n => n.Index());
}
}
Когда он выполняет AreaRegistration.RegisterAllAreas()
, однако, он выдает это исключение:
System.InvalidOperationException: System.InvalidOperationException: этот метод не может быть вызван во время этапа инициализации перед запуском приложения.
Итак, я полагаю, я не могу назвать это из инициализатора класса. Но когда я могу это назвать? Я, очевидно, не имею Application_Start
в своем тесте.