XCTest, XCTWaiter ожидает множественных исключений

#swift #automated-tests #xctest

#swift #автоматизированные тесты #xctest

Вопрос:

Я пытаюсь дождаться, пока произойдет одно из двух событий.

     let predicateOne = NSPredicate(format: "exists == true")
    let predicateTwo = NSPredicate(format: "isHittable == true")
    let expOne = expectation(for: predicateOne, evaluatedWith: elementOne,handler: nil)
    let expTwo = expectation(for: predicateTwo, evaluatedWith: ElementTwo,handler: nil)
    let result = XCTWaiter().wait(for: [expOne,expTwo], timeout: 5)
  

Есть два элемента elementOne и elementTwo. Я хочу знать, как только elementOne существует ИЛИ elementTwo доступен для доступа. Как я могу получить от XCTWaiter, какой элемент заставил его прекратить ожидание?

Комментарии:

1. Почему вас волнует, какой элемент остановил официанта? Поскольку вы ждете их обоих, это означает, что вам не должно быть все равно, какой из них доступен первым.

Ответ №1:

Правильно, но XCTWaiter возвращает результат, и вы должны наблюдать этот результат, что-то вроде этого

 XCTAssertEqual(result, .completed)