【问题标题】:How do I UI test a document-based app with XCTest?如何使用 XCTest 对基于文档的应用程序进行 UI 测试?
【发布时间】:2016-09-14 04:16:38
【问题描述】:

鉴于以下设置:

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

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


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

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

【问题讨论】:

    标签: macos cocoa xctest xcode-ui-testing


    【解决方案1】:

    提出固定装置建议的人非常准确。由于 UI 测试应该完全执行应用程序的功能而不涉及内部,因此您必须从外部加载文档。

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

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

    【讨论】:

    • 很高兴知道这一点,但我希望 Apple 能在 XCTest 中加入更好的方法。您能否使用一种在路径中以相对路径打开的方式来更新您的答案?否则,我们最终可能会得到一个脆弱的绝对路径,它只能在一个开发者的 Mac 上运行,而其他人(也不是 CI 框)都无法运行
    • 我实际上从来没有这样做过,但是在我脑海中,你能把文件作为二进制文件嵌入到你的项目中吗?然后它只是您工作空间的一部分,您可以通过多种方式访问​​它,包括通过文字相对路径。
    猜你喜欢
    • 1970-01-01
    • 2011-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-24
    • 2010-10-19
    • 1970-01-01
    • 2010-09-05
    相关资源
    最近更新 更多