У меня есть представление коллекции с некоторыми элементами. Во время моих тестов пользовательского интерфейса я нажимаю кнопку, и это вызывает сетевой запрос, который, когда завершится, вставит ячейку в это представление сбора с индексом 0. Хотя этот сетевой запрос поступает с локального сервера, он по-прежнему принимает секунда или две для завершения.
Я хочу дождаться ввода новой ячейки и проверить правильность значений. Это будет визуальным подтверждением того, что функционирование кнопки работает.
Как бы я поступил так? Я не могу использовать application.collectionViews.cells.element(boundBy: 0)
, потому что в этой позиции уже есть ячейка, поэтому он найдет ее немедленно, но у нее будут неправильные значения.
Мне нужно запросить ячейки представления коллекции по их подпредставлениям. Примерно так:
let predicate = NSPredicate(format: "staticTexts['Title Label I'm after'].exists == 1")
application.collectionViews.cells.element(matching: predicate)
Но это не работает, на самом деле происходит сбой, предположительно из-за того, что staticTexts недоступен для распознавателя предикатов.
Другая вещь, о которой я думал, - это то, что я создаю свою собственную версию XCTestExpectation
, которая запускается каждую секунду и запускает обработчик, который будет брать первую ячейку и проверять ее содержимое.