【问题标题】:Straightforward yet isolated view controller UI testing in Xcode Simulator possible?可以在 Xcode Simulator 中进行简单但独立的视图控制器 UI 测试吗?
【发布时间】:2019-05-01 08:03:39
【问题描述】:

是否可以使用 Xcode 模拟器运行 UI 测试,例如,通过从 XCTestCase 手动启动视图控制器?我熟悉在 Swift 中通过NSProcessInfo(或ProcessInfo)配置测试环境,但我有某种情况,只显示单个视图控制器并运行一系列手势确实更容易在它上面...而不是在某些条件下导航到它。

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

【问题讨论】:

  • 它在单元测试中是可能的,而不是在 UI 测试中 afaik :((可能的用途是测试,在单元测试中将您当前的视图与 printscreen 进行比较)

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


【解决方案1】:

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

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

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

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

【讨论】:

    猜你喜欢
    • 2014-04-22
    • 2014-08-07
    • 1970-01-01
    • 2015-11-12
    • 2016-06-24
    • 2012-03-03
    • 2018-07-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多