Подтвердить что ты не робот

Кто-нибудь использовал Стив Сандерсонс MvcIntegrationTestFramework?

Я изучал дополнительные способы тестирования приложений ASP.NET MVC и столкнулся с Стивом Сандерсоном MvcIntegrationTestFramework. Этот подход выглядит довольно многообещающе, но мне было интересно, есть ли у кого-нибудь реальный опыт для обмена.

4b9b3361

Ответ 1

У меня есть хорошие результаты. Меня не волнует, что кто-то еще здесь говорит о необходимости проверки просмотров, как только вы добавляете свою первую строку кода в представление, даже если код строго связан с представлением, вы вводите потенциал для ошибок, для которых было бы неплохо написать автоматизированные тесты. Мой основной интерес состоит в том, чтобы поймать как можно больше белых и желтых экранов/ошибок. Для этого я использовал фрагмент из вступительного сообщения в блоге Стивена, чтобы убедиться, что страница отображается правильно, не выбрасывая никаких исключений:

Assert.IsTrue(result.ResponseText.Contains("<!DOCTYPE html"));

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

  • Если ваш веб-сайт выполняет довольно сложную привязку к модели между представлениями и методами действий, вы можете обнаружить, что создаете несколько довольно крупных именных объектов, таких как в этом примере (метод действия, который фактически принимает объект модели представления LogonModel), поскольку Я не вижу способа передать какие-либо сложные типы объектов модели представления в ваши методы действий с помощью этой структуры:

var result = browsingSession.ProcessRequest("/account/logon", HttpVerbs.Post, new NameValueCollection { {"UserName","myName"}, {"Password", "myPassword"}, {"returnUrl", "/home/myActionMethod"} });

  • Выполнение browsingSession.ProcessRequest( "url" ) создает хост/контекст приложения, который фактически выполняет тестируемый веб-код с использованием конфигурации в тестируемом проекте. Это означает, что тесты выполняются немного медленно и могут модифицировать реальные данные, так как я не вижу быстрого и простого способа обмена хранилищами доступа к данным в тестируемом веб-проекте поддельными версиями с использованием любого объекта, встроенного в этот тест-рамки. Другими словами, вам, вероятно, придется катиться самостоятельно, используя некоторые средства на основе web.config.

Ответ 2

После прочтения ardave answer некоторое время назад мы действительно попробовали это для нашего нового Orchard Marinas.info.

Прежде всего, я рекомендую всем начинать с вилки эту версию, поскольку ее еще проще настроить, чем оригинал.

Для любого "нормального" приложения MVC3 он просто работает. К сожалению, вместе с Orchard он не играл хорошо, по крайней мере, не с неизмененной версией их Global.asax.cs. Таким образом, мы по-прежнему опустили трассировку на основе браузера, но мы продолжаем использовать ее для выполнения команд Orchard внутри приложения, которое достаточно быстро.

Ответ 3

Я не использовал эту структуру. Но основываясь на моем опыте чтения его книги - Pro ASP.NET MVC Framework и еще одна система проверки xVal, который он разработал, я бы сказал: "ОН БОЛЬШОЙ".

Ответ 4

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

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