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

How do I UI test a document-based app with XCTest?

给定以下设置:

如何使用 XCTest 框架 UI 测试应用的基于文档的部分?


与基于文档的功能无关的常规单元或 UI 测试很容易,但我看不出如何对基于文档的位进行 UI 测试,因为在 UI 测试我们被禁止进入应用程序,例如,模拟 NSDocument class.

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

提出固定装置建议的人非常准确。由于 UI 测试应该在不进入内部的情况下准确地执行应用程序的功能,因此您必须从外部加载文档。

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

打开文档

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