Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/108.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 在Xcode UI测试中等待30秒_Ios_Xcode Ui Testing - Fatal编程技术网

Ios 在Xcode UI测试中等待30秒

Ios 在Xcode UI测试中等待30秒,ios,xcode-ui-testing,Ios,Xcode Ui Testing,在某一点上,许多web服务调用都会被调用。我只想等30秒,因为我知道在这段时间内一切都会结束。我需要一个初步的解决方案 我尝试了这个方法,但出现了一些错误: tablesQuery.buttons["Button"].tap() DispatchQueue.main.asyncAfter(deadline: .now() + 30.0) { let tablesQuery2 = tablesQuery 你有什么想法吗?最简单的方法就是暂时停止执行: sl

在某一点上,许多web服务调用都会被调用。我只想等30秒,因为我知道在这段时间内一切都会结束。我需要一个初步的解决方案

我尝试了这个方法,但出现了一些错误:

tablesQuery.buttons["Button"].tap()
        DispatchQueue.main.asyncAfter(deadline: .now() + 30.0) {
            let tablesQuery2 = tablesQuery

你有什么想法吗?

最简单的方法就是暂时停止执行:

sleep(30)
但是,如果您希望某些东西出现,最好使用“等待存在”:

element.waitForExistence(30)
如果什么都没有出现,它不会失败,因此如果它是逻辑的关键部分,您可能最好通过使用计时器的期望来检查它:

let exists = NSPredicate(format: "exists == %@", true)
expectationForPredicate(exists, evaluatedWithObject: element, handler: nil)
waitForExpectationsWithTimeout(30, handler: nil)

最简单的方法就是暂时停止执行:

sleep(30)
但是,如果您希望某些东西出现,最好使用“等待存在”:

element.waitForExistence(30)
如果什么都没有出现,它不会失败,因此如果它是逻辑的关键部分,您可能最好通过使用计时器的期望来检查它:

let exists = NSPredicate(format: "exists == %@", true)
expectationForPredicate(exists, evaluatedWithObject: element, handler: nil)
waitForExpectationsWithTimeout(30, handler: nil)

30秒后你想检查什么?@AleksandrMedvedev的答案是正确的。测试引发错误,因为您正在调度代码以异步运行,但您的测试方法在异步代码完成运行之前完成运行。这意味着异步块中引用的任何对象都可能已被清除,这将导致错误。例如,如果您试图在异步代码块中实现测试预期,而该代码块在测试方法返回后运行,则会引发错误。您想在30秒内检查什么?@AleksandrMedvedev的答案是正确的。测试引发错误,因为您正在调度代码以异步运行,但您的测试方法在异步代码完成运行之前完成运行。这意味着异步块中引用的任何对象都可能已被清除,这将导致错误。例如,如果您试图在异步代码块中实现测试预期,而该代码块在测试方法返回后运行,则会引发错误。