Swift XCTest UI 使用 Realm 进行测试
Swift XCTest UI tests with Realm
我正在使用 Realm 2.4.2 使用 Swift 3.0 开发我的 UI 测试。
UI 测试目标
- 使用 pk 创建领域对象 Cat "cat_01"
- 检查是否存在具有 pk "cat_01" -> 成功的 Cat 对象
- 打开包含从领域获取的猫列表的视图控制器 -> 空列表
申请
- CatsListViewController:table 带有猫的视图(未找到 Cat 对象)
如何"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" 它。
我正在使用 Realm 2.4.2 使用 Swift 3.0 开发我的 UI 测试。
UI 测试目标
- 使用 pk 创建领域对象 Cat "cat_01"
- 检查是否存在具有 pk "cat_01" -> 成功的 Cat 对象
- 打开包含从领域获取的猫列表的视图控制器 -> 空列表
申请
- CatsListViewController:table 带有猫的视图(未找到 Cat 对象)
如何"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" 它。