【发布时间】:2018-01-29 03:23:23
【问题描述】:
我正在尝试使用 Xcode 中的单元测试来测试一些异步代码,但我得到了一个阻塞的主线程。
问题在于,一些正在测试的代码期望接收来自 iOS 类 (AVFoundation) 的回调。但是,似乎 AVFoundation 类只会在主线程上回调。
问题在于,如果我正在执行异步单元测试,那么测试实际上会在等待时阻塞主线程,因此永远无法发送回调。
我很确定这是问题所在。有什么方法可以从另一个线程运行测试,或者有一个不会阻塞主线程的XCTWaiter?
编辑: 在查看了一些文档之后,似乎最好的方法是在后台线程上运行整个测试用例。但是,在我当前的项目中,测试都是自动设置的。我想知道是否有人知道如何设置测试用例/手动运行。这样我就可以在另一个线程上运行它。
【问题讨论】:
-
你能把等待方法分派给后台线程吗?
-
@Oletha 这样的作品,所有的测试都通过了。但是我的异步回调永远不会被调用,服务员超时永远不会失败。我认为因为当方法返回时一切都超出了范围。
-
啊是的,有道理...
标签: ios unit-testing xctest