Swift XCTest UI 使用 Realm 进行测试

Swift XCTest UI tests with Realm

我正在使用 Realm 2.4.2 使用 Swift 3.0 开发我的 UI 测试。

UI 测试目标

申请


如何"see"在测试目标和应用程序相同的领域对象上?

不想做的是使用launchArguments变通方法委托应用程序创建对象。

您不能 "see" 在您的 UI 测试目标和您的应用程序中使用相同的 Realm 对象,因为这两个 运行 宁作为完全独立的进程。

来自苹果的docs

UI testing exercises your app's UI in the same way that users do without access to your app's internal methods, functions, and variables. ... Your test code runs as a separate process, synthesizing events that UI in your app responds to.

换句话说:您的 UI 测试 运行 在与您的主应用程序交互的单独应用程序中进行(当您 运行 一个 UI 测试时,您可以看到 Test运行ner 应用程序在你的主应用程序启动之前被启动和关闭)。这两个应用不能共享对象。

我看到你可以去的两个方向:

1.通过您应用的 UI

创建猫对象

您可能在某处有一个 "Add cat" 按钮。在您的 UI 测试中按下它,像使用一样添加一只猫,然后断言该猫已添加到列表中。这就是 UI 测试的目的。像用户一样使用应用程序并测试用户与应用程序交互的结果。

2。使用单元测试:

如果您想测试创建的 Realm cat 对象是否正在填充列表,UnitTest 可能是更好的方法。在单元测试期间,您可以完全访问您的应用代码。因此,您可以在测试代码中创建一个 cat 对象,应用程序将 "see" 它。