Подтвердить что ты не робот

TDD с ASP.NET MVC 1.0

Где я могу найти хороший учебник по TDD с ASP.NET MVC 1.0? Я бы предпочел видео-учебник, но текстовое учебное пособие будет хорошо. У меня скоро новый проект, и я хочу начать с правой ноги.

4b9b3361

Ответ 2

Любой учебник по TDD будет полезен для MVC. Я делал TDD на некоторое время и обнаружил, что это был естественный переход в MVC. Есть несколько особенностей, которые я обнаружил, что их нужно решать.

  • Вам часто нужно макетировать HttpContext, а это значит, что вам нужно назначить ControllerContext для контроллера после его создания, поскольку это единственный способ вставить макет. Контекст будет использоваться для предоставления объектов Session, Request и Response в контроллере (также имитирует их). Новые классы HttpContextBase, HttpSessionStateBase,... делают это намного проще.

  • Из-за (1) инвестируйте некоторое время в сбор некоторых вспомогательных классов в отдельной библиотеке классов, которые могут использоваться всеми вашими тестовыми проектами. Эти классы-помощники должны содержать методы, которые предоставляют настраиваемые (или несколько методов для предоставления определенных конфигураций) измешанных контекстов. Это поможет сохранить ваши тесты компактными.

  • Использовать и назначать ValueProvider для тестирования методов, которые принимают параметры, если вы не используете ModelBinding (с соответствующими параметрами в сигнатуре) для действия контроллера. Это позволит вам использовать TryUpdateModel/UpdateModel без добавления кода в контроллер для получения данных из запроса в эти методы.

  • Используйте насмешливую структуру - если это не очевидно сверху. Было бы намного легче написать ваши тесты, если вы издеваетесь над зависимостями. Написание собственных макетов, ИМО, не стоит того, хотя я знаю, что другие не разделяют это мнение. Я предполагаю, что это не уникально для MVC, но я думал, что упомянул об этом.

  • Настройте отдельный набор тестов, которые используют отражение для проверки того, что соответствующие атрибуты с соответствующими свойствами устанавливаются в ваших методах. MVC активно использует атрибуты для обеспечения безопасности и других сквозных аспектов. Они также должны быть протестированы.

Ответ 3

Посмотрите здесь. Рекомендуется хранить переднюю панель MVC.