Тестирование компонентов приложений ASP.Net MVC 4

Я понимаю, что это дубликат из примерно 20 разных сообщений, но ни один из них не является специфичным для MVC4, и ни один из них, который я видел, действительно не отвечает на все мои вопросы. До сих пор мой первый набег на мир TDD был, по меньшей мере, разочаровывающим. Большинство из того, что я пытался сделать, кажется несовместимым с MVC 4 или рядом с невозможным без использования плохо документированных сторонних библиотек, которые я пока не совсем понимаю.

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

Мне нужен способ unit test ASP.Net MVC, который оставит очень мало шансов.

Тестирование выходного файла модели Action достаточно просто, но проверка просмотров была практически невозможной.

Итак, вот мой список вопросов:

  • Как только я тестирую действие и получаю результат действия, как я могу проверить, существует ли представление, которое оно хочет?
  • Как проверить мои маршруты?
  • Как я могу проверить, правильно ли обрабатываются мои представления?
  • Что такое "лучшая практика" для модульного тестирования THOROUGH ASP.Net MVC 4?
  • Как сделать unit test проверку подлинности форм?
  • Как сделать unit test Action Filters?

Я бы предпочел использовать встроенные тестовые проекты Visual Studio, но если я должен использовать NUnit, я должен. Мне просто нужно убедиться, что это будет сделано правильно.

Заранее благодарим за ваши ответы.

EDIT: я также не мог заставить NUnit работать с моим приложением MVC4 из-за несовместимости с версией .NET. Одна из сборников была скомпилирована.

Ответ 1

нет. 4: Это трудный вопрос. Как проверить что-либо полностью? Лично я на самом деле не тестирую взгляды, кроме трех основных браузеров и двух моих глаз, так как трудно протестировать веб-сайт и все его компоненты, фактически не используя его. У вас есть стрельба по JavaScript, стилизация CSS, и она выглядит по-разному в разных браузерах. Итак, для меня это похоже на проверку взгляда, который является второстепенной частью общей удобности вашего сайта. Если вы разрабатываете простой отчет о финансовых данных на основе таблиц, тщательно проверяйте эти данные. Если ваше представление является базой для причудливого сайта Ajax, возможно, не тестируйте HTML так же, как опыт. Я знаю, что это нелегкий ответ, но приемлемый уровень охвата всегда связан с компромиссом.