WPF - PRISM (CAL) - автоматизированное функциональное тестирование

В настоящее время я новичок в проекте, который был начат 1 год назад.

В этом проекте используются C#, WPF, PRISM (CAL), Entity Framework, LINQ и т. Д. Приложение выполняется с использованием шаблона MVVM.

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

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

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

  • Переопределить призму Boostrapper класса
  • Создайте простое приложение (потому что под MSTEST кажется, чтоSystem.Windows.Application.Current нулевой). Я только что получил класс от System.Windows.Application,

Я могу получить доступ ко всем своим реализациям интерфейсов, используя UnityContainer. У меня сейчас проблема в том, что IEventAggregator не работает. События не проводятся. Я не хочу издеваться над агрегатором событий, потому что хочу, чтобы он запускал мои события между модулями призмы (я делаю функциональное тестирование, а не модульное тестирование).

Я нашел способ заставить это работать, играя с Dispatcher а также DispatcherFrame, но я получаю запас в RegionManager это похоже на провал.

У меня вопрос: есть ли лучший способ провести функциональное / интеграционное тестирование, не показывая интерфейс пользователя?

1 ответ

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

Для этого вы кодировали тесты пользовательского интерфейса в Visual Studio, вы столкнетесь с некоторыми проблемами с WPF, в основном элементами управления, которые вы не можете легко получить в отображении кодированного пользовательского интерфейса. Но кроме этого он хорошо работает, легко встраивает тесты и хорошо интегрируется с TFS Build Agents и MSBuild.

Другие вопросы по тегам