waitForExpectations
APIを使用して非同期関数をテストする必要があるUIテストを実行しています。私が正しく期待を作成したとして、waitForExpectationsを使用するとAPI違反が発生する
"NSInternalInconsistencyException", "API violation - call made to wait without any expectations having been set."
私は本当に理解していない:
が、私はこのエラーを取得しています。
さらに、ドキュメンテーションのバグがあるようです。ドキュメントによれば、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)
}
あなたは' self.expectation(説明)を使用するときは、どのようなエラーを取得します:ドキュメントは明らかにこれは、あなたがこのような期待を作成する必要があることを、意味
を言うの?これはこれを行う正しい方法であるため、そうでなければ、テストクラスはあなたの期待を作成したことを知りません。 – Losiowaty
説明パラメータ(let exp1 = XCTestExpectation(description: "ss2"))を使用してexpectationを作成しようとすると、引数を取らないように引数を渡します。 – onthemoon