Модульное тестирование просмотров? - PullRequest
22 голосов
/ 30 сентября 2008

Есть идеи о модульном тестировании представлений в ASP.NET MVC?

Мне надоело видеть желтый экран смерти, когда я запускаю свой проект MVC только потому, что я забываю обновить представления, когда один из Action методов моего контроллера меняет имя.

Ответы [ 5 ]

8 голосов
/ 30 сентября 2008

Вы можете написать интеграционные тесты, используя Watin , но если вам просто нужна быстрая проверка на наличие ошибок в ваших представлениях, вы также можете попробовать решение, упомянутое в этом посте: Как я могу скомпилировать страницы ASP.NET перед загрузкой их с веб-сервера . Предварительно создайте свои ASPX-страницы, и все готово!

6 голосов
/ 10 июля 2009

Установите для <MvcBuildViews> значение true в вашем файле проекта, и компилятор сообщит вам об этой проблеме при сборке.

Предполагается, что файл вашего проекта также содержит следующий раздел (автоматически добавляется в ASP.NET MVC 1.0)

<Target Name="AfterBuild" Condition="'$(MvcBuildViews)'=='true'">
  <AspNetCompiler VirtualPath="temp" PhysicalPath="$(ProjectDir)\..\$(ProjectName)" />
</Target>
3 голосов
/ 10 октября 2008

Ну, кроме записи в блоге Стивена Вальтера , отмеченной AugustLights , есть и другие варианты ...

Джим Циммерман рассказывает в своем блоге о неком коде, который он написал для динамической предварительной компиляции своих страниц просмотра ASP.NET MVC, чтобы найти любые простые ошибки.

Вы также можете использовать Spark View Engine , который имеет функцию предварительной компиляции, вместо использования ASPX View Engine по умолчанию, который включен ASP.NET MVC. Это довольно драматическое изменение и может не подойти вам;)

Если вам нужна дополнительная информация о Spark или других средствах просмотра, у Скотта Хансельмана есть отличный пост в блоге с описанием их и того, как они могут выглядеть.

1 голос
/ 14 июня 2012

T4MVC, чтобы избежать магических значений

Ваша проблема сводится к волшебные строки не так ли. Так почему бы не попробовать их решить?

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

Модульное тестирование вида? Тестирование статических не функциональных вещей?

Модульное тестирование - это тестирование функциональных аспектов вашего приложения, а не статических (в вашем случае это были бы ссылки в чужом случае, это были бы некоторые, я не знаю ... CSS-классы или определенные элементы HTML на странице ). Это просто не купит меня на юнит-тестирование в представлениях ...

Таким образом, вместо модульного тестирования ваших представлений решается ваша проблема в корне.

1 голос
/ 30 сентября 2008

S. У Вальтера есть кое-что, что решает эту проблему, но выглядит немного громоздко ... http://stephenwalther.com/archive/2008/07/26/asp-net-mvc-tip-25-unit-test-your-views-without-a-web-server

Я собираюсь разобраться в этом еще немного ... кажется разумным заняться ...

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