gpt4 book ai didi

swift - 在 UI 测试中将模拟数据插入核心数据

转载 作者:搜寻专家 更新时间:2023-10-31 19:28:55 25 4
gpt4 key购买 nike

我的应用程序目前使用核心数据作为持久性,我想用一些模拟数据做一些 UI 测试。目前我正在使用之前在开发时存储的数据运行 UI 测试。理想情况下,我想将一些模拟数据插入到 MOC 中,以允许我编写更多 UI 测试。对于我的单元测试,我将 JSON 文件中的数据插入设置函数中的托管对象上下文中。我想知道这是否适用于 UI 测试?

我曾尝试在线查找此内容,但我已经阅读了很多人的不同答案,以至于我现在感到很困惑。如果这不可能,谁能推荐使用核心数据进行 UI 测试的最佳实践?

最佳答案

无法在您的 UITest 类中创建模型数据,因为 UITest 类无法访问您应用的代码。

来自 Apple's Docs :

UI testing differs from unit testing in fundamental ways. Unit testing enables you to work within your app's scope and allows you to exercise functions and methods with full access to your app's variables and state. 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. This enables your tests to see the app the same way a user does, exposing UI problems that users encounter.

如果您想在运行 UITest 时使用模拟数据,您可以在应用代码中创建模拟数据,然后确保仅在运行 UITest 时创建模拟数据。

要完成这项工作,您必须执行以下步骤:

1) 在 UITest 类中启动应用时添加启动参数:

func testExample() {
let app = XCUIApplication()
app.launchArguments.append("IS_RUNNING_UITEST")
app.launch()
// Do your tests
}

2) 将创建模拟数据的代码添加到您的应用(例如,在您的 AppDelegate 中)并在出现启动参数时运行它:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool {
if ProcessInfo.processInfo.arguments.contains("IS_RUNNING_UITEST") {
// insert data from a JSON file into the managed object context
}
}

关于swift - 在 UI 测试中将模拟数据插入核心数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42284964/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com