Является ли Model View Presenter правильным выбором для тестирования пользовательского интерфейса asp.net? - PullRequest
1 голос
/ 07 января 2009

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

Вы использовали MVP, и если да, что вы думаете?

Ответы [ 2 ]

6 голосов
/ 07 января 2009

Model View Presenter, Model View Controller, традиционный трехуровневый (пользовательский интерфейс / бизнес-логика / хранилище данных) или практически любая другая архитектура, которая изолирует различные аспекты вашего кода, помогает вам писать тесты.

Часто архитектура определяется вашим инструментом: теги Asp.Net MVP, похоже, указывают на то, что вы уже сделали свой выбор там. Самая сложная часть для тестирования в любой конфигурации - это пользовательский интерфейс, потому что даже если вы создадите фиктивный пользовательский интерфейс, который выполняет все функции, которые может выполнить пользователь ... в какой-то момент вам придется отображать его в браузере и убедитесь сами, что теория обоснована.

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

Что касается "устаревшего" аспекта, я думаю, что это красная сельдь. Конечно, существуют религиозные войны, связанные с выбором архитектуры, но причина, по которой MVP используется в некоторых проектах ASP.NET, состоит в том, что многие считают, что традиционный стек ASP.NET слишком тесно интегрирован между пользовательским интерфейсом и бизнес-логикой. , (Я один из них.) Для небольших проектов такая тесная связь не такая уж большая проблема, и она способствует быстрой возможности «запустить и запустить» дизайнера форм с привязкой данных. В больших проектах ограничения этих инструментов проявляются в спешке, и «средний» уровень, взломанный после факта, является сложной задачей: вам не нужно сталкиваться с MVP.

1 голос
/ 07 января 2009

Я сделал проект ASP.NET с использованием MVP в прошлом году. Да, я смог охватить больше модульным тестированием, чем раньше, в мире веб-форм, но это казалось хакерским. Также попробуйте объяснить, что вы делаете с кем-то еще. По какой-то причине людям тяжело это делать. Если бы мне пришлось сделать это снова, я бы пошел с ASP.NET MVC Framework, так как он официально поддерживается тоннами документации и обновления, а не просто взломать.

...