我正在运行UI测试,我需要使用waitForExpectations
API测试异步函数。
我收到此错误:
" NSInternalInconsistencyException"," API违规 - 调用等待而没有任何期望已经设置。"
我真的不明白,因为我已经正确地创造了期望。
此外,似乎存在文档错误:根据文档,API为expectation(description:)
但编译器不会接受,而是我需要使用XCTestExpectation()
来创建一个。
func testExample() {
XCTAssertTrue(state == .STATE_NOT_READY)
let exp1 = XCTestExpectation()
let queue = DispatchQueue(label: "net.tech4freedom.AppTest")
let delay: DispatchTimeInterval = .seconds((2))
queue.asyncAfter(deadline: .now() + delay) {
XCTAssertTrue(true)
exp1.fulfill()
}
self.waitForExpectations(timeout: 4){ [weak self] error in
print("X: async expectation")
XCTAssertTrue(true)
}
self.waitForExpectations(timeout: 10.0, handler: nil)
}
答案 0 :(得分:20)
好的,你的错误是你试图直接实例化期望。文档清楚地说
使用以下 XCTestCase方法创建XCTestExpectation实例:
- 期望(描述:)
这意味着,您应该创建这样的期望:
func testMethod() {
let exp = self.expectation(description: "myExpectation")
// your test code
}