Тестовые представления в ASP.NET MVC2 (аля RSpec) - PullRequest
9 голосов
/ 06 мая 2010

Мне действительно очень не хватает возможности проверить представления независимо контроллеров. Способ RSpec делает это .

Что я хочу сделать, так это выполнить утверждений для визуализированного представления (где не задействован контроллер!). Для этого я должен предоставить необходимые Model, ViewData и, возможно, некоторые детали из HttpContextBase (когда мы избавимся от HttpContext!).

Пока что я не нашел ничего, что позволило бы это сделать. Также это может сильно зависеть от используемого ViewEngine.

Список вещей, которые могут содержать представления:

  • Частичные представления (могут быть вложены глубоко).
  • Главные страницы (или аналогичные в других механизмах просмотра).
  • Помощники HTML, создающие ссылки и другие элементы.
  • Как правило, почти все в здравом смысле :).

Также обратите внимание, что я не говорю о тестировании на стороне клиента, и поэтому Selenium просто не имеет к нему никакого отношения. Это просто тестирование .NET.

Так есть ли какие-нибудь варианты, чтобы на самом деле тестировать представления?

Спасибо
Дмитрий.

Ответы [ 3 ]

2 голосов
/ 26 мая 2010

Основная проблема при тестировании полных представлений заключается в том, что механизм представления asp.net вызывает Response.Write в предоставленном контексте /, а не в предоставленном модуле записи.

Выше не подходит для тестирования частичных представлений, поэтому для тех, кто может использовать это решение: http://www.brightmix.com/blog/renderpartial-to-string-in-asp-net-mvc/

Существуют и другие механизмы просмотра, которые позволяют вам проверить представление, т. Е. Spark.

пс. Концепция asp.net mvc заключается в том, что вы должны иметь возможность протестировать представление с помощью ViewEngine, но, насколько я понимаю, команда asp.net mvc не обошла существующие ограничения движка asp.net, чтобы иметь возможность сделать это. для их просмотра двигатель.

1 голос
/ 18 мая 2010

Возможно, вы захотите проверить помощников по тестированию пользовательского интерфейса, над которыми работают Эрик Хекстер и ребята из MVCContrib. У меня не было возможности взглянуть на это подробно, но это может помочь вам. Я нашел эту ссылку, которая показывает некоторый синтаксис: http://codepaste.net/cw8ie4

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

0 голосов
/ 19 мая 2010

Интересно узнать, найдете ли вы что-нибудь для .Net, которое делает это. Наше текущее приложение - WPF, но мы застряли с доверием Cucumber, чтобы касаться наших видов во всех наших функциях ... так что да, это отстой. Надеюсь, вы что-нибудь найдете и обновите нас.

...