Модульное тестирование ASP.Net MVC 4 приложения тщательно


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

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

Я хочу способ модульного теста ASP.Net MVC, который оставит очень мало шансов.

тестирование модели вывод действия кажется достаточно простым, но тестирование представлений было почти невозможно.

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

  1. как только я проверю действие и получу результат действия, как я могу проверить, существует ли представление, которое он хочет?
  2. Как проверить мои маршруты?
  3. как я могу проверить, чтобы убедиться, что мои взгляды обрабатываются правильно?
  4. что на самом деле " лучше всего практика " для тщательного модульного тестирования ASP.Net MVC 4?
  5. Как выполнить проверку подлинности форм модульного теста?
  6. как сделать фильтры действия модульного теста?

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

заранее спасибо за ваши ответы.

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

1 60

1 ответ:

  1. убедитесь, что представление существует
  2. http://haacked.com/archive/2007/12/17/testing-routes-in-asp.net-mvc.aspx/
  3. http://blog.davidebbo.com/2011/06/unit-test-your-mvc-views-using-razor.html
  4. см. ниже
  5. как я могу модульный тест мой ASP.NET контроллер MVC, который использует FormsAuthentication?
  6. How-to test action filters in ASP.NET MVC?

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