Как бороться со списками утилизации - PullRequest
0 голосов
/ 24 сентября 2018

Я создаю набор тестов пользовательского интерфейса для приложения для iOS, используя API XCUITest.Приложение использует списки рециркуляции, и мне нужно получить доступ к определенным ячейкам этих списков во время моих тестов, как показано в коде ниже:

let cells: XCUIElementQuery = app.descendants(matching: XCUIElement.ElementType.any).matching(identifier: "cells_accessibility_id") let cell: XCUIElement = cells.element(boundBy: index) cell.tap()

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

Есть ли другой способ, которым я могу получить весь список независимо от видимости элемента?Или я должен изменить свои тесты / попробовать другой подход?

1 Ответ

0 голосов
/ 25 сентября 2018

Вы не можете полагаться на индексы многократно используемых ячеек, как вы указали, однако обычно есть способ устранить зависимость от необходимости проверять ячейки на определенные индексы.Решение будет зависеть от того, что вы хотите протестировать, но вот несколько возможных альтернативных стратегий:

  • Если ваши ячейки таблицы всегда одинаковы, вы можете назначить им жестко запрограммированный идентификатор на основе ихcontent.
  • Если в ячейках вашей таблицы есть динамическое содержимое, вы можете использовать данные теста-заглушки для каждого теста, чтобы на экране была только одна ячейка (та, которая имеет отношение к тесту).
  • Если вы можете идентифицировать нужную ячейку по представлениям, содержащимся в этой ячейке, вы можете искать в каждой ячейке соответствующие представления, прежде чем выбирать ее, вместо того, чтобы полагаться на ее индекс.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...