单元测试不了解 XCTest 期望的异步 UI 代码?

Posted

技术标签:

【中文标题】单元测试不了解 XCTest 期望的异步 UI 代码?【英文标题】:Unit testing asychronous UI code which does not know about XCTestExpectations? 【发布时间】:2015-02-09 21:45:54 【问题描述】:

如何对在不平凡的图形设置中工作的 ios 代码片段进行单元测试?

考虑例如视图控制器AB,其中ABperformSegueWithIdentifier:sender: 堆叠在一起。单元测试应该检查 C 的行为,这取决于两个视图控制器的排列方式。

performSegueWithIdentifier:sender: 异步工作,即单元测试将在其完成任务之前结束,除非让单元测试等待类似XCTestExpectation 的东西。但在这种情况下,BC 都没有准备好根据这种期望致电 fulfill

在这种情况下是否有前进的道路,即在没有准备好调用 fulfill 的钩子的情况下测试异步 UI 代码?

【问题讨论】:

这听起来更像是 UI 自动化而不是 XCTest。你在你的例子中用 C 测试了什么? @psobko 我想用 XCTest 自动化(也)测试 UI 代码。 C 执行非 UI 操作,但要对 AB 进行操作。 【参考方案1】:

我得出的结论是,采用集成测试框架(例如 KIF)可能是可行的方法。

【讨论】:

以上是关于单元测试不了解 XCTest 期望的异步 UI 代码?的主要内容,如果未能解决你的问题,请参考以下文章

我可以在不失败的情况下做出 XCTest 期望吗?

AWS Device Farm 的 XCTest 单元和 UI 测试

从 XCTest 覆盖中忽略视图控制器

无法从 XCTest 访问应用程序代码

使用 XCTest 进行异步方法测试

xcode 5 xctest 测试异步登录网络服务