Что наиболее важно проверить в приложении ASP.NET MVC? - PullRequest
9 голосов
/ 09 февраля 2009

В большинстве сообщений stackoverflow о модульном тестировании ASP.NET MVC говорится о конкретной проблеме или конкретной вещи для тестирования, такой как testing HtmlHelpers . Другие на тему лучших практик имеют удивительно мало ответов . Доступные видео, которые я смотрел, на мой взгляд, совершенно бесполезны - и умопомрачительно долго (к тому времени, как вы смотрели 1,5 часа и ничего не узнали).

Что я хочу знать от людей, которые на самом деле это делают:

  • Какие самые важные вещи нужно проверить сначала
  • Что не нуждается в тестировании (шокирующий ужас для меня, сказав это, но я не после 100%)
  • Что такое трудно для тестирования и как вы преодолели сложные испытания.
  • Что может помешать в рефакторинге, что тест не уловит.

Я не новичок в том, как проводить модульное тестирование, но я очень новичок в том, чтобы делать это последовательно. Буду очень признателен за уроки, извлеченные из опыта экспертов по модульному тестированию ASP.NET MVC.

Я действительно ищу конкретные вещи, которые вы можете узнать только после того, как попробуете это - но не общие советы, такие как «использовать интерфейсы» - хотя, конечно, любые предложения приветствуются.

О, и скажем, я решил использовать модульное тестирование Microsoft - просто потому что оно уже там. Я думаю, что все ответы будут применяться ко всем системам тестирования.

Ответы [ 3 ]

7 голосов
/ 09 февраля 2009
  • Проверьте свою маршрутизацию. Вам следует использовать RouteLink для устранения неоднозначности при создании URL-адреса в представлении, но при отправке URL-адреса вы зависите от системы маршрутизации, которая выберет правильный маршрут. Поэтому убедитесь, что поддерживаемые вами шаблоны URL действительно возвращают правильный маршрут.
  • Проверьте действия вашего контроллера. Используйте фиктивный репозиторий и проверьте, что каждый вызов вручную вызывает ожидаемые результаты.
  • Проверьте всю бизнес-логику в вашей модели. Это очевидно и мало отличается от приложений не из MVC.
  • Проверьте любые пользовательские помощники просмотра, которые вы пишете. Хотя я обычно не выполняю модульные тестовые представления, помощники в представлении отличаются.
  • Проверьте свой JavaScript. Для этого существуют платформы модульного тестирования, поэтому тестирование JavaScript настолько просто, что такие платформы вряд ли нужны. Но тестирование JavaScript невероятно важно из-за склонности языка скрывать от вас ошибки.
  • Если вы написали какие-либо пользовательские связующие модели, они требуют особого внимания. С одной стороны, гораздо проще отладить связыватель модели с помощью модульного теста, чем когда он «живой» в приложении.
3 голосов
/ 15 сентября 2009

Я хотел бы остановиться на тестировании действий контроллера:

  • Убедитесь, что вы получите правильный ActionResult. Перенаправление отличается от вида.
  • Также проверьте ожидаемое имя представления. Если вы полагаетесь на представление по умолчанию, оно должно быть пустым.
  • Убедитесь, что вы получаете правильную модель вида.
  • Проверьте все ветви в вашем действии. Сократите их до минимума и переведите их в помощника / службу, когда их станет слишком много.

Короче, проверьте что-либо из ActionResult, которое вы будете использовать.

1 голос
/ 09 февраля 2009

Я не думаю, что ответ должен быть конкретным для ASP.NET MVC. Как и в любом другом приложении, самая важная вещь, которую вы должны протестировать, - это ваша основная логика. То есть код вашей модели и действия вашего контроллера.

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