Структура фреймворка автоматизации WPF приложения

Структура фреймворка автоматизации WPF приложения

В предыдущей статье мы ознакомились с фреймворками для автоматизации WPF и Winforms приложений – Telerik Testing Framework и TestStack White, а также объектом автоматизации. Проект можно скачать по ссылке на GitHub.

Описание структуры тестового фреймворка

Для упрощения поддержки и гибкости фреймворк автоматизации разделен на два проекта. Один из них SampleApp.Tests.Framework – содержит код объявлений контролов и методы Telerik Testing Framework и TestStack White, которые будут вызваны в тестовом проекте. Сам же тестовый проект (SampleApp.Tests) содержит одни лишь тесты. Он ничего “не знает” о первом проекте, что является самым главным правилом в разграничении обязанностей проектов автоматизации. Это очень полезно, когда одна команда/человек со знанием программирования может быть ответственна(ый) за кодирование фреймворка для тестов, другая(ой) могут работать над тест-дизайном и писать тесты. Другим преимуществом двух проектов – есть то, что изменения в фреймворке никаким образом не влияют на логику тестов. Ниже представлена структура проекта:

telerik1

SampleApp – это тестируемое приложение. Как правило, его не добавляют к фреймворку. В нашем случае он был включен в состав только для того, чтобы после сборки проекта (build), можно было получить файл для запуска объекта автоматизации – SampleApp.exe и перенести его вместе с добавленной картинкой HappyFace.jpg в директорию C:\SampleApp\SampleApp\bin\Debug. Без этого наши тесты не запустятся.

SampleApp.Tests – как уже было сказано ранее, – здесь находятся наиболее важные артефакты – тесты. Для их запуска используется Unit Testing Framework. Также вы можете использовать любой другой фреймворк (xUnit, nUnit, etc.) или даже написать свой раннер.

SampleApp.Tests.Framework – наиболее интересная часть проекта. Здесь размещены объявления и обработка следующих элементов – главного окна приложения (WPF), сообщений во всплывающих окнах (WinForms) и окна-проводника (WinForms). Главное окно обрабатывается с помощью Telerik Testing Framework, другие два элемента с помощью – White. Класс App.cs объявляет свойства и основные методы для работы с приложением. BaseTest инициализирует его объект. Он расширяется классом тестов UnitTest1.

В следующем уроке речь пойдет о поиске и структуре элементов WPF.