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

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

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

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

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

Шоудль Я следую BDD, чтобы сделать это, и пишу базовый класс с методом:

givenThatLoginIsSuccessful()

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

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

// When
whenThumbnailPhotoTapped()

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

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

1 Ответ

1 голос
/ 24 апреля 2020

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

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

Там также другие методы - и они должны быть выбраны в отношении испытаний.

...