Как тестирование относится к ASP.NET MVC / WEBFORMS Silverlight MVVM - PullRequest
0 голосов
/ 25 июня 2010

В последнее время я изучаю MVC2 и MVVM, и я думаю, что это работает следующим образом.

ASP.NET MVC2 - можно протестировать весь веб-сайт с помощью модульных тестов

ASP.NET MVC2 + jqueryвызовы веб-сервисов - больше нельзя просто использовать модульный тест MSTest.Что такое продукт MS для тестирования на стороне javascript?

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

ASP.NET Webforms + вызовы веб-службы jquery - Может выполнять только модульное тестирование вызовов веб-службы.Невозможно использовать веб-тесты производительности из-за вызовов javsscript.Нужна какая-то среда тестирования javascript.

Silverlight - тестов нет.Возможно кодовые тесты пользовательского интерфейса.

Silverlight MVVM - Используйте платформу модульного тестирования silverlight для тестирования модели ViewModel, аналогичной MVC.

Silverlight MEF - Как MEF влияет на тестирование сценариев, если вообще?

Это точно?Есть ли что-то, что я пропускаю?

Я пытаюсь довести до сведения ответственных лиц, что мы должны использовать MVC поверх веб-форм, чтобы мы могли создавать автоматизированное тестирование.Так как мы делаем Webforms все в одном проекте, и тестирование невозможно, поэтому люди просто тестируют вручную сценарии: (

Ответы [ 2 ]

1 голос
/ 25 июня 2010

Вместо того, чтобы указывать причины, по которым вы должны использовать MVC поверх веб-форм, я бы сделал шаг назад и проделал бы команду управления о том, почему вы должны использовать модульные тесты. После того, как это продано, вы можете сказать, что MVC позволит вам сделать это более эффективно, чем веб-формы.

Вы собираетесь пройти полный маршрут TDD или просто создавать тесты после? Я настоятельно рекомендую пойти по пути TDD, даже если он имеет более крутой график обучения и снизит вашу производительность, пока вы изучаете его.

Поскольку вы уже изучаете тестирование, вы, вероятно, знаете большинство из них, но я повторю некоторые из преимуществ:

Меньше дефектов попадает в QA.

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

Проектирование для тестирования создает более слабосвязанное приложение, которое, как правило, легче обслуживать.

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

Тесты - отличная документация для новых разработчиков, присоединяющихся к проекту, так как они видят, чего пытаются достичь.

Примечание: стоимость исправления дефекта, сделавшего его доступным для производства, может быть в 80 раз больше стоимости его обнаружения и исправления в процессе разработки и контроля качества (я постараюсь найти источник для этой цифры) .

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

Для существующего проекта Webforms вы также можете заглянуть в Фабрику программного обеспечения веб-клиента. Я обнаружил, что это очень полезно для переноса устаревших приложений веб-форм с течением времени, хотя это немного сложнее, чем MVC2.

0 голосов
/ 25 июня 2010

Я не знаю о других технологиях, но я могу говорить об использовании Silverlight с паттерном MVVM. Используя шаблон MVVM вместе с шаблоном команды, мы смогли провести модульное тестирование всего нашего кода на C #. Я имею в виду запрет кода xaml, у нас очень высокий охват кода для нашего кода C #. На самом деле мы используем модифицированную версию MVVM, в которой мы также используем контроллер. Если вы убедитесь, что в файлах с выделенным кодом нет кода, вы можете смоделировать нажатие кнопки / другие подобные события пользовательского интерфейса. Это очень полезно для интеграционных тестов. Мы обнаружили, что наш шаблон MVVM вместе с контроллером и с помощью шаблона команд облегчает модульное тестирование.

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