Модульное тестирование модульных веб-страниц ASP.Net - PullRequest
1 голос
/ 29 мая 2011

В настоящее время я работаю над устаревшим приложением, которое использует веб-формы ASP.Net.Страницы в этом приложении имеют смесь форматирования и логики в файлах aspx и ascx.Как правило, такие вещи, как:

if (number of passengers > 1)
  include singlePassengerForm.ascx
else 
  include multiPassengerForm.ascx

, но думаю, что гораздо сложнее - вложенный ascx включает в себя, много логики, гораздо большие страницы и т. Д.

Я хотел бы исправить это, но медленно.Финальный дизайн, к которому я сейчас стремлюсь, - это очень легкая страница / элемент управления, который не будет иметь никакой логики, а просто выберет что-то из модели (включая то, какой ascx будет вставлен).Мне нравится тот факт, что страницы и элементы управления разбиты на более мелкие части, и я хотел бы сохранить это.Таким образом, это будет переводиться во взаимосвязанную модель (например: ReservationFormModel имеет PassengerFormModel - которая может быть SinglePassengerForm или MultiplePassengerForm) и набор взаимосвязанных страниц с, вероятно, набором контроллеров для заполнения модели и соединения модели и страницы.Так что вроде MVCish.Основная идея в том, что я хочу провести модульное тестирование этой логики.

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

Буду очень признателен за любые идеи / предложения / отчеты об этом.

Я видел ответы на следующие вопросы: Как лучше всего выполнить модульное тестирование для ASP.Веб-страницы NET 2.0? и это: Модульное тестирование устаревших приложений ASP.NET Webforms , но я ищу что-то более конкретное

1 Ответ

1 голос
/ 29 мая 2011

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

Простое решение состоит в том, чтобы включить базовую логику в классы «Logic», такие как контроллеры MVC, и использовать страницу за кодом только для привязки данных к элементам управления.,Затем можно использовать, например, инфраструктуру NUnit для создания тестового устройства и NCover для мониторинга покрытия тестового кода.

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