iOS 中的 XCTest 和 UI 测试

Posted

技术标签:

【中文标题】iOS 中的 XCTest 和 UI 测试【英文标题】:XCTest and UI testing in iOS 【发布时间】:2014-02-15 05:14:40 【问题描述】:

我是 ios 单元测试的新手,需要为 iOS 7 应用程序编写单元测试。我看到 XCTest 在测试导航器和助理编辑器的帮助下编写单元测试。由于“单元测试”意味着我们正在测试一段代码[可以是单个方法或一组相关方法]。 我们如何为 UI 编写单元测试?假设我们在应用程序启动时确实有一个设置屏幕,其中包含一些用户需要选择的选项,然后将其保存到 NSUserDefaults 以供以后使用。 我的问题:我们如何使用 XCTest 来: 1. 显示 UI [用户界面在故事板中],以便能够验证其上的各种 UI 元素,包括一些自定义绘制的 UI 工作。

可能我对使用 XCTest 进行 UI 的单元测试有点困惑,所以如果有人能澄清以上内容,那就太好了。

我也看到了苹果的 UIAutomation,但是我们如何将它集成到我们的测试目标中呢?

【问题讨论】:

【参考方案1】:

如果您想测试应用的 UI(正如您所指出的),您需要实施“系统测试”或“集成测试”而不是单元测试。 所以你需要研究 UIAutomation 而不是 XCTests。

并且没有将系统测试集成到您的测试目标中。您需要运行 Xcode 的工具应用程序,然后您可以测试您的应用程序。 看看这个web,它对我有帮助。

【讨论】:

【参考方案2】:

从 xcode 7 开始,XCTest 提供 UI 测试 - 请参阅 https://developer.apple.com/videos/play/wwdc2015-406/ 了解更多信息

【讨论】:

以上是关于iOS 中的 XCTest 和 UI 测试的主要内容,如果未能解决你的问题,请参考以下文章

XCTest 中的测试通知(UI 测试)

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

构建 XCTest UI 测试套件的最佳实践是啥?

如何从 XCTest 中的 UI 目标调用主目标中的方法?

iOS/Swift 中的 UI 测试

XCTest:UI测试类中的NSUserdefaults中未检索到的值