我想在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)
}
答案 0 :(得分:2)
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
}