问题是编写断言当前线程是主线程的单元测试是否有意义? 优点/缺点?
最近看到单元测试断言当前线程用于服务的回调。我不确定,这是个好主意,我相信它更像是一种集成测试。在我看来,单元测试应该隔离断言方法,不应该知道服务消费者的性质。
在 iOS 中,此服务的使用者旨在成为一个 UI,默认情况下它具有在主线程运行代码的约束。
更新:
服务内部有一个调用:
DispatchQueue.main.async {
failure(error)
}
它在测试套件期间运行并且未被模拟。因此,延迟打破了单元测试必须快速且单元测试应与任何其他单元测试同时运行的规则。
最佳答案
UI 层的工作是确保它只在主线程上更新 UI。您希望将主线程上的工作限制在最低限度(基本上,只有 UI 工作)。您的回调很可能会做很多其他处理。将所有这些都放在主线程上是不好的做法,只是因为这些任务的一小部分(UI 更改)需要它。
关于ios - 断言当前线程是主线程的单元测试 [iOS],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53774395/