Временное решение:
1) В MvcApplication выставьте виртуальный метод RegisterAllAreas()
public class MvcApplication : HttpApplication
{
public void Application_Start()
{
// register areas
RegisterAllAreas();
// register other stuff...
}
public virtual void RegisterAllAreas()
{
AreaRegistration.RegisterAllAreas();
}
}
2) В спецификации внедритепрокси:
[Subject(typeof(MvcApplication))]
public class when_application_starts : mvc_application_spec
{
protected static MvcApplication application;
protected static bool areas_registered;
Establish context = () => application = new MvcApplicationProxy();
Because of = () => application.Application_Start();
It should_register_mvc_areas = () => areas_registered.ShouldBeTrue();
class MvcApplicationProxy : MvcApplication
{
protected override void RegisterAllAreas()
{
areas_registered = true;
}
}
}
3) Тест AreaRegistration
реализации индивидуально
4) Исключить MvcApplication.RegisterAllAreas()
из тестового покрытия
Мне не нравится этот подход, но я не могу сейчас придумать лучшего решения.Идеи и комментарии приветствуются…