Как структурировать методы тестирования пользовательского интерфейса для доступа к страницам, которые находятся за страницей входа?

Я пытаюсь найти рекомендации по структурированию методов тестирования пользовательского интерфейса в XCTestCase для доступа и тестирования страниц приложения, которые доступны только после входа пользователя в систему.

Чтобы я мог протестировать пользовательский интерфейс частной страницы просмотра фотографий, мой метод тестирования должен будет: 1. Войти, 2. Перейти на страницу «Список альбомов», 3. Нажмите на первый альбом в списке и перейдите к на странице «Просмотр альбома», 4. Нажмите на первую фотографию в списке и перейдите на страницу «Просмотр фотографий», 5. И, наконец, напишите утверждения для тестирования пользовательского интерфейса страницы просмотра фотографий.

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

Каковы наилучшие методы структурирования методов тестирования для тестирования внутренних страниц приложения?

Я должен следовать BDD, чтобы сделать это и написать базовый класс с методом:

givenThatLoginIsSuccessful()

а затем создайте новый класс Test Case, который расширяет базовый класс и имеет такие методы, как:

// Given
givenThatLoginIsSuccessful()
givenThanAlbumsListPageHasAlbums()
giveThatAlbumViewPageHasPhotos()

// When
whenThumbnailPhotoTapped()

// Then 
thenLargeSizePhotoIsVisible()
thenDismissLargePhotoButtonIsEnabled()
thenDownloadLargePhotoButtonIsEnabled()

Как вы, ребята, организуете свои методы тестирования пользовательского интерфейса, которые тестируют внутренние/глубокие страницы приложения?


person Simplyi    schedule 23.04.2020    source источник


Ответы (1)


Обычно я организую свой код с помощью шаблона PageObject (ScreenObject). https://github.com/rzakhar/xctest-assignment/blob/master/TestTarget/TestClass.swift

Вы можете увидеть другую реализацию этого шаблона в этом вопросе XCUITest с использованием робота шаблон не может напечатать ошибочную строку

Есть и другие методики – и их надо выбирать с учетом испытаний.

person Roman Zakharov    schedule 24.04.2020
comment
спасибо! Я посмотрю ссылки, которыми вы поделились. - person Simplyi; 24.04.2020