Estoy probando unitarias mis rutas en ASP.NET MVC 2. Estoy usando MSTest y estoy usando áreas también.Pruebas unitarias ASP.NET MVC 2 rutas con áreas resguardadas en AreaRegistration.RegisterAllAreas()
[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());
}
}
Cuando se ejecuta AreaRegistration.RegisterAllAreas()
sin embargo, se lanza esta excepción:
System.InvalidOperationException: System.InvalidOperationException: Este método no puede ser llamado durante la fase de inicialización previa al arranque de la aplicación.
Por lo tanto, creo que no puedo llamarlo desde mi inicializador de clase. Pero cuando puede lo llamo? Obviamente no tengo un Application_Start
en mi prueba.
¿Cuál es el propósito del parámetro 'testContext'? Nunca se usa. – MEMark
@MEMark - se requiere para [ClassInitialize] – Swati
@Swati Por supuesto. Simplemente no he usado MSTest en mucho tiempo. – MEMark