Проблема с беглым тестированием маршрута mvcContrib в asp.net mvc - PullRequest
0 голосов
/ 21 октября 2010

У меня проблема с тестированием маршрутов с использованием MVCContrib Fluent. Тест не пройден, но приложение распознает маршруты.

Позвольте мне объяснить ....

У меня есть следующие маршруты в моем реестре (показаны в порядке)

routes.MapRoute(
                "PurchaseUnitsPaged",
                "PurchaseUnits/Page{page}",
                new { controller = "PurchaseUnits", action = "Index", page = 1 },
                new { page = @"\d+" }
                );


routes.MapRoute(
                "PurchaseUnit",
                "PurchaseUnits/{unitname}",
                new { controller = "PurchaseUnits", action = "Show" }
            );

Конвейер маршрутизации правильно отправляет запросы на Индекс для маршрута 1 и Показать для маршрута 2.

Однако, когда я тестирую маршрутизацию с использованием беглых классов MVCContrib, я получаю тестовый сбой для маршрута 1.

Тест:

"~/PurchaseUnits/Page{page}".ShouldMapTo<PurchaseUnitsController>(x=> x.Index(1));

Тест не пройден, так как ожидание равно Индекс , но фактическое значение равно Показать .

Есть идеи, почему беглые классы не идентифицируют правильную маршрутизацию, а маршрутизация mvc работает в реальном приложении? Или, если у вас нет предложений о том, как я могу настроить свой тест или маршруты, чтобы я мог полностью его протестировать?

1 Ответ

2 голосов
/ 21 октября 2010

Ваш тест должен быть:

"~/PurchaseUnits/Page1".ShouldMapTo<PurchaseUnitsController>(x=> x.Index(1));

URL-адрес ~/PurchaseUnits/Page1 а не ~/PurchaseUnits/Page{page}.

...