ios - 可以在 Xcode Simulator 中进行直接但独立的 View Controller UI 测试吗?

标签 ios xcode xctest xcode-ui-testing ui-testing

是否可以使用 Xcode 模拟器运行 UI 测试,例如,通过从 XCTestCase 手动启动 View Controller ?我熟悉在 Swift 中通过 NSProcessInfo(或 ProcessInfo)配置测试环境,但在某些情况下,仅显示它确实更容易单个 View Controller 并在其上运行一系列手势...与在特定条件下导航到它相对。

虽然我可以创建另一个目标来执行此操作,然后为此进行 UI 测试,但我想知道是否有更简单的方法。

最佳答案

您不能在 XCTestCase 类中手动初始化 UIViewController(或任何其他 UIKit 类)并在其上运行 UITests。

您的 UITest 测试代码作为一个单独的进程运行,综合您应用中的 UI 响应的事件。换句话说,您在 UITests 中编写的代码在与您测试的应用程序交互的测试运行器应用程序上运行。 Test Runner 应用程序只能与主应用程序的 UI 元素交互。它无法直接访问主应用程序的代码或查看层次结构。所以你不能在测试期间添加 UIViewController

正如您在问题中已经提到的,您可以添加另一个目标,该目标仅显示您要测试的 View Controller 。但这对我来说听起来不太实际。

或者(正如您还提到的)您可以在 UITest 中设置 XUIApplication().launchArguments 并在设置启动参数后直接在应用程序启动时显示 ViewController。

关于ios - 可以在 Xcode Simulator 中进行直接但独立的 View Controller UI 测试吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53535963/

相关文章:

iphone - 如何创建一个 iPhone 应用程序来拍照并将其发送回 Oracle 数据库?

ios - 向上滑动和向右滑动在 XCUITest 上无法正常工作 - M1 Mac

iphone - 在 iOS 应用程序中加入自定义单词词典

ios - UITableView 的 HeaderFooterView 不根据大小类宽度拉伸(stretch)

ios - 无法禁用复制 UIWebView

ios - 目标成员资格的 Storyboard 错误(灰色)

ios - UITableView 崩溃无法识别的选择器发送到实例

swift - 当前测试用例成功/失败

ios - XCUITest 获取 URL 值

ios - 使用 session 快速发出 HTTP POST 请求