如何使用 XCTest 对基于文档的应用程序进行 UI 测试?

use*_*135 5 macos cocoa xctest xcode-ui-testing

鉴于以下设置:

  • 用 Swift 编写的基于文档的 OS X 应用程序
  • OS X El Capitan 开发机
  • Xcode 7.x
  • 新/升级的 XCTest 框架

如何使用 XCTest 框架对应用程序的基于文档的部分进行 UI 测试?


与基于文档的功能无关的常规单元或 UI 测试很容易,但我看不到如何在基于文档的位上进行 UI 测试,因为在 UI 测试中,我们被禁止进入应用程序,例如,嘲笑 NSDocument 类。

我听到的一个建议是在测试资源文件夹中创建夹具文件/文件夹(取决于您的基于文档的应用程序需要什么),并以某种方式让测试打开它。但是有没有更好的解决方案?

Aar*_*aer 3

提出赛程建议的人非常准确。由于 UI 测试应该完全执行应用程序的功能,而不需要深入内部,因此您必须从外部加载文档。

XCTest 无法(从 Xcode 7.x + El Capitan 开始)驱动文件 -> 打开... -> 选择文件 -> 单击“打开”按钮流程 - 它会到达“打开...”对话框然后测试崩溃,因为它无法继续进行。这意味着您将无法通过 UI 打开文档。

这只剩下另一个选项 - 您应该尝试通过 init 中传递的某种参数来初始化应用程序,以获取必要的本地状态。