Как протестировать асинхронные функции в swift, используя XCTWaiter и исключения
Я хочу протестировать асинхронные функции в Swift, поэтому, как показано ниже, я создал XCTestExpectation
и передал его XCTWaiter
, Теперь, независимо от того, выполнено ли ожидание или нет, я получаю тест, успешно выполненный всегда.
Можете ли вы указать, что не так в коде. Я в точности следил за блогом, созданным для Swift 3, однако я использую Swift 4. В этом ли проблема?
func testAsyncFunction() {
let expectation = XCTestExpectation(description: "Some description")
vc.asyncFunction(5) { (abc: Int) -> Int in
if (abc != 25) {
// expectation.fulfill()
}
return 0
}
_ = XCTWaiter.wait(for: [expectation], timeout: 2.0)
}
1 ответ
XCTWaiter.wait
возвращает XCTWaiter.Result
который вы должны наблюдать.
func testAsyncFunction() {
let expectation = XCTestExpectation(description: "Some description")
vc.asyncFunction(5) { (abc: Int) -> Int in
if (abc != 25) {
// expectation.fulfill()
}
return 0
}
let result = XCTWaiter.wait(for: [expectation], timeout: 2.0) // wait and store the result
XCTAssertEqual(result, .timedOut) // check the result is what you expected
}