MVCContrib Тестовый маршрут с участками - PullRequest
4 голосов
/ 20 апреля 2010

Я использую MVC 2 с областями. Для проверки маршрутизации я использую MvcContrib.

Это код тестирования:

[Test]
public void Home()
{
    MvcApplication.RegisterRoutes(RouteTable.Routes);
    "~/".ShouldMapTo<HomeController>(x => x.Login("Nps"));
}

Я не уверен, как вызвать определение маршрутизации, которое хранится в областях. Вызов AreaRegistration.RegisterAllAreas () не является опцией, поскольку он дает исключение.

Спасибо Ревин

Ответы [ 3 ]

5 голосов
/ 04 июня 2010

Это то, как я это делаю, и это работает для меня

[Test]
public void VerifyRouteMapFor_Test_Area_TestController()
{
    RouteTable.Routes.Clear();

    var testAreaRegistration = new testAreaRegistration();
    testAreaRegistration.RegisterArea(new AreaRegistrationContext(testAreaRegistration.AreaName, RouteTable.Routes));

    "~/test/index".ShouldMapTo<testController>(x => x.Index());
}
1 голос
/ 30 апреля 2010

Вместо вызова RegisterAllAreas, вам следует вызвать AreaRegistration для той области, которую вы тестируете. RegisterAllAreas сканирует все загруженные сборки и в результате делает слишком много для теста. Я бы вручную настроил тест. Если это все еще происходит, и исключение опубликуйте здесь или в списке рассылки mvccontrib. Я уверен, что в некоторых случаях необходимо обновить TestHelper для лучшей поддержки областей. Мы еще не добавили поддержку конкретных областей помощникам по тестированию.

0 голосов
/ 19 октября 2010

Для модульного теста, возможно, лучше всего сделать одну область. Но для интеграционного теста вам нужно протестировать все маршруты в контексте, imo.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...