Тест XCUI не пройден из-за MBProgressHud - PullRequest
0 голосов
/ 14 декабря 2018

Я запускаю тест XCUI на контроллере представления.Каждый раз, когда представление инициализируется, выполняется вызов API и отображается MBProgressHud.Мой тест требует поиска кнопки и нажатия на нее, однако я не могу нажать, поскольку отображается перекрывающийся MBProgressHud, а также API не получает ответ, необходимый для отображения кнопки.Это привело к провалу теста.

Мои вопросы - это то, что я делаю неправильно.

  1. Можем ли мы включить этот тип сценариев (например, вызов API) в наше тестирование пользовательского интерфейса?
  2. Как ждатьдля завершения вызова API, чтобы продолжить наш тест пользовательского интерфейса?

Ответы [ 2 ]

0 голосов
/ 06 февраля 2019

Вы можете использовать, и это прекрасно работает.

func waitForExistence(timeout: TimeInterval) -> Bool

https://developer.apple.com/documentation/xctest/xcuielement/2879412-waitforexistence

0 голосов
/ 17 декабря 2018

Да.Мы можем включить эти сценарии в наше тестирование пользовательского интерфейса.Вот функция, которую нам нужно дождаться появления элемента пользовательского интерфейса:

func waitForElementToAppear(_ element: XCUIElement) -> XCUIElement? {
    let predicate = NSPredicate(format: "exists == true")
    let expectation = XCTNSPredicateExpectation(predicate: predicate,
                                                object: element)

    let result = XCTWaiter().wait(for: [expectation], timeout: 10)
    if result == .completed {
        return element
    }

    return nil
}

Эта функция будет ожидать завершения вызова API и требует появления элемента пользовательского интерфейса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...