在 UI 测试期间测试对象状态 (iOS)

Posted

技术标签:

【中文标题】在 UI 测试期间测试对象状态 (iOS)【英文标题】:Test object state during UI testing (iOS) 【发布时间】:2017-11-02 09:24:06 【问题描述】:

是否可以在 UI 测试期间测试对象状态(全局变量、单例对象)?例如,我进行了 UI 测试,其中一些按钮被点击并将文本输入到文本字段中。我想断言对象状态会根据用户输入正确更改。

【问题讨论】:

【参考方案1】:

在 UI 测试期间,您将无法访问应用程序代码中的变量。您的应用和 UI 测试在单独的可执行文件中运行,并且在运行时无法访问彼此的内部。

要检查文本字段的状态,您需要从表示文本字段的 XCUIElement 中读取状态(如果您感兴趣的状态在 UI 中可见),或者编写一个单元测试来检查国家。

来自 Apple(通过 this answer):

UI 测试与单元测试的执行方式不同 - 单元测试在您的应用程序进程中运行,因此它们可以访问您的应用程序代码。 UI 测试在应用程序之外的单独进程中执行,因此它们可以模拟用户与应用程序的交互方式。预计您将无法通过 UI 测试访问您的应用类。

【讨论】:

感谢您的澄清!

以上是关于在 UI 测试期间测试对象状态 (iOS)的主要内容,如果未能解决你的问题,请参考以下文章

为啥我的状态之一在我的测试期间没有被触发

避免在 XCTest UI 测试中恢复应用程序状态

在 UI 测试中访问 MPMoviePlayerController 的播放状态

如何在 iOS 自动化脚本中访问模型对象?

如何在赛普拉斯 e2e 测试之前设置 NGRX 状态?

识别选定状态 Swift UI 测试