Автоматизация юнит-тестов для asp.net mvc - PullRequest
2 голосов
/ 25 октября 2010

Сегодня я наконец начал серьезно писать модульные тесты для моего нового проекта ASP.net MVC.Однако некоторые модульные тесты продолжали возвращаться для каждого действия в каждом контроллере:

  • Выполнить тест, если возвращенный ActionResult не равен NULL.
  • Выполнить тест, если действие возвращаетдопустимый ActionResult, если ModelState недействителен.
  • Выполните тест, если тип ActionResult соответствует определенному типу (например, ViewResult или RedirectResult).

Эти три теста содержали более или менееодин и тот же код для каждого действия.Поскольку мне нравится избегать дублирования кода, я подумал об автоматизации этих тестов по умолчанию для каждого действия.Я сделал несколько быстрых поисковиков по этому поводу, но ничего не смог найти.

Итак:

  • Является ли автоматическая проверка по умолчанию мудрым делом?
  • Если даЕсть ли в наличии сценарии или люди, которые уже делали что-то подобное раньше?
  • Если никто не делал что-то раньше, какие-либо предложения о том, как к этому подойти?

Спасибо за любые ответы!

Ответы [ 2 ]

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

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

Вы смотрели на TestHelpers в MvcContrib .Я думаю, что многие общие тесты типов контроллеров уже реализованы.Есть и другие аспекты, которые облегчают тестирование.Тем не менее, он может использоваться для более удобной настройки ваших тестов.Посмотрите на этот ответ относительно Избыточное тестирование модулей .

1 голос
/ 25 октября 2010

Первый большой тактический вопрос: «Какой стек юнит-тестирования вы используете?» Некоторые [mstest] не поддерживают наследование в тестах, поэтому делать подобные вещи сложно.

Что касается собственно этого, я обычно обнаружил, что это может иметь смысл, но слишком много общего кода в модульных тестах может быть плохой вещью - что происходит, когда ваши коды модульных тестов становятся настолько сложными, что вам нужны модульные тесты для тестового кода?

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