Где я могу найти хороший учебник по TDD с ASP.NET MVC 1.0? Я бы предпочел видео-учебник, но текстовое учебное пособие будет хорошо. У меня скоро новый проект, и я хочу начать с правой ноги.
TDD с ASP.NET MVC 1.0
Ответ 1
Видеофайлы в магазине из ASP.NET являются обязательной частью просмотра.
Ответ 2
Любой учебник по TDD будет полезен для MVC. Я делал TDD на некоторое время и обнаружил, что это был естественный переход в MVC. Есть несколько особенностей, которые я обнаружил, что их нужно решать.
-
Вам часто нужно макетировать HttpContext, а это значит, что вам нужно назначить ControllerContext для контроллера после его создания, поскольку это единственный способ вставить макет. Контекст будет использоваться для предоставления объектов Session, Request и Response в контроллере (также имитирует их). Новые классы HttpContextBase, HttpSessionStateBase,... делают это намного проще.
-
Из-за (1) инвестируйте некоторое время в сбор некоторых вспомогательных классов в отдельной библиотеке классов, которые могут использоваться всеми вашими тестовыми проектами. Эти классы-помощники должны содержать методы, которые предоставляют настраиваемые (или несколько методов для предоставления определенных конфигураций) измешанных контекстов. Это поможет сохранить ваши тесты компактными.
-
Использовать и назначать ValueProvider для тестирования методов, которые принимают параметры, если вы не используете ModelBinding (с соответствующими параметрами в сигнатуре) для действия контроллера. Это позволит вам использовать TryUpdateModel/UpdateModel без добавления кода в контроллер для получения данных из запроса в эти методы.
-
Используйте насмешливую структуру - если это не очевидно сверху. Было бы намного легче написать ваши тесты, если вы издеваетесь над зависимостями. Написание собственных макетов, ИМО, не стоит того, хотя я знаю, что другие не разделяют это мнение. Я предполагаю, что это не уникально для MVC, но я думал, что упомянул об этом.
-
Настройте отдельный набор тестов, которые используют отражение для проверки того, что соответствующие атрибуты с соответствующими свойствами устанавливаются в ваших методах. MVC активно использует атрибуты для обеспечения безопасности и других сквозных аспектов. Они также должны быть протестированы.
Ответ 3
Посмотрите здесь. Рекомендуется хранить переднюю панель MVC.
Ответ 4
Я подумал, что Rob Conery "ASP.NET MVC Storefront Starter Kit" http://www.asp.net/learn/mvc-videos/#MVCStorefrontStarterKit отлично подойдет для демонстрации TDD с помощью ASP.NET MVC.