我如何 UI 使用 XCTest 测试基于文档的应用程序?
How do I UI test a document-based app with XCTest?
给定以下设置:
- 基于文档的 OS X 应用程序,用 Swift
编写
- OS X El Capitan 开发机
- Xcode 7.x
- 新的/升级的XCTest框架
如何使用 XCTest 框架 UI 测试应用的基于文档的部分?
与基于文档的功能无关的常规单元或 UI 测试很容易,但我看不出如何对基于文档的位进行 UI 测试,因为在 UI 测试我们被禁止进入应用程序,例如,模拟 NSDocument class.
我听到的一个建议是在测试资源文件夹中创建夹具文件/文件夹(取决于您的基于文档的应用程序需要什么),并以某种方式让测试打开它。但是有没有更好的解决办法呢?
提出固定装置建议的人非常准确。由于 UI 测试应该在不进入内部的情况下准确地执行应用程序的功能,因此您必须从外部加载文档。
XCTest 不能(从 Xcode 7.x + El Capitan 开始)能够驱动文件 -> 打开... -> Select 一个文件 -> 单击 'Open' 按钮流 - 它到达“打开...”对话框,然后测试崩溃,因为它无法继续进行。这意味着您将无法通过 UI.
打开文档
这只剩下一个选项 - 您应该尝试通过在 init 中传递的某种参数来初始化应用程序,以将必要的本地状态放入其中。
给定以下设置:
- 基于文档的 OS X 应用程序,用 Swift 编写
- OS X El Capitan 开发机
- Xcode 7.x
- 新的/升级的XCTest框架
如何使用 XCTest 框架 UI 测试应用的基于文档的部分?
与基于文档的功能无关的常规单元或 UI 测试很容易,但我看不出如何对基于文档的位进行 UI 测试,因为在 UI 测试我们被禁止进入应用程序,例如,模拟 NSDocument class.
我听到的一个建议是在测试资源文件夹中创建夹具文件/文件夹(取决于您的基于文档的应用程序需要什么),并以某种方式让测试打开它。但是有没有更好的解决办法呢?
提出固定装置建议的人非常准确。由于 UI 测试应该在不进入内部的情况下准确地执行应用程序的功能,因此您必须从外部加载文档。
XCTest 不能(从 Xcode 7.x + El Capitan 开始)能够驱动文件 -> 打开... -> Select 一个文件 -> 单击 'Open' 按钮流 - 它到达“打开...”对话框,然后测试崩溃,因为它无法继续进行。这意味着您将无法通过 UI.
打开文档这只剩下一个选项 - 您应该尝试通过在 init 中传递的某种参数来初始化应用程序,以将必要的本地状态放入其中。