Я создаю XCTestCase
. Для одного из тестовых методов, назовите его func testConfirmLastCellContent() { ... }
, я хочу подтвердить, что существует staticText
дочерний элемент со значением "98765"
в пределах UITableViewCell
(я помещаю текстовое значение в textLabel.text
свойство ячейки табличного представления). Над этой ячейкой перечислены 4 ячейки табличного представления. Каждый из них имеет String
значение "12345"
для своих textLabel.text
, за исключением второй ячейки, которая имеет то же текстовое значение, что и последняя: "98765"
.
Значения String
для свойства textLabel.text
каждой ячейки она выглядит следующим образом:
"12345"
"98765"
"12345"
"12345"
"98765"
Эти значения textLabel.text
являются визуальными подэлементами only в ячейках табличного представления соответственно.
Если я создам простое XCUIElementQuery
вроде так ...
let staticTextForLastCell = XCUIApplication().staticTexts["98765"]
... и утверждаю его существование как true
вот так ...
XCTAssert(staticTextForLastCell.exists == true)
... тогда тест пройдет , но откуда мне знать, что я получил последнюю ячейку? Очевидно, что я не могу знать из этого запроса, потому что он может извлекать данные из 2-й ячейки.
Пока что я не могу найти класс / метод XCTest
, чтобы получить последний последний UITableViewCell
и запросего детали.
Моя цель - получить последнюю ячейку и подтвердить, что ее значение textLabel.text
- это то, чего я ожидаю. Как я могу это сделать?
Примечание: Я не могу добавлять / вычитать / изменять текстовые, визуальные и т. Д. Элементы ни в одной из ячеек табличного представления.
Edit:
Следует также отметить, что UITableViewCell
s генерируются динамически тестируемым приложением. Поэтому я не могу tag
их или заполнить свойство accessibilityIdentifier
для textLabel
или ячейки.
Моя настройка следующая:
- Операционная система : macOS Mojave 10.14.6
- IDE : Xcode 10.3
- SDK : iOS 12.4 SDK
- Развертывание цели : iOS 12.0
- Язык : Swift 5