我想将测试的进程延迟T秒,而不生成超时。
首先,我尝试了显而易见的方法:
sleep(5)
XCTAssert(<test if state is correct after this delay>)
但那失败了。
然后我试着:
let promise = expectation(description: "Just wait 5 seconds")
waitForExpectations(timeout: 5) { (error) in
promise.fulfill()
XCTAssert(<test if state is correct after this delay>)
}
我的XCTAssert()
现在成功了,但是waitForExpectations()
失败了,超时了。
这是根据XCTest
wait functions的文档说明:
超时始终被视为测试失败。
我有什么选择?
3条答案
按热度按时间bqujaahr1#
您可以使用XCTWaiter.wait函数。
例如:
mbyulnm02#
如果您知道某项测试将花费多长时间,并且只是想在继续测试之前等待该持续时间,则可以使用以下一行代码:
ars1skjm3#
对我最有效的是: