提问人:Ben 提问时间:10/2/2023 最后编辑:Dávid PásztorBen 更新时间:10/2/2023 访问量:56
XCUI setUpWithError 未等待异步函数完成执行
XCUI setUpWithError not waiting for async functions to finish executing
问:
我想使用一个函数来防止在每个测试设置中重复代码。setUpWithError
在运行一些同步函数之前,我有几个异步函数要运行。
到目前为止,我有这个:
override func setUpWithError() throws {
let expectation = XCTestExpectation(description: "Setup")
Task {
await function1()
await function2()
expectation.fulfill()
}
wait(for: [expectation], timeout: defaultTimeout)
synchronousFunction()
}
任务中的期望似乎不会在调用之前“等待”。synchronousFunction()
请问我该如何解决这个问题?非常感谢。
答:
0赞
Dávid Pásztor
10/2/2023
#1
如果要在那里执行异步代码,则需要使用其他方法。setUp
您需要覆盖 .有关详细信息,请参阅文档。func setUp() async throws
评论
0赞
Ben
10/3/2023
我相信我在等价物上看到了同样的问题。我会重新审视这一点,谢谢。async throws..
上一个:Swift 函数超时
评论
override func setUp() async throws { XCTAssertNoThrow(try await function1()) }
'async' call in an autoclosure that does not support concurrency
async
async
func function1() async { await doSomething()}