在UI测试之前设置Documents文件夹

Tim*_*ddy 6 xctest xcode-ui-testing

XCTest UI自动化测试是非常强大的功能,直到您需要测试基于某些数据呈现不同的UI的某些部分.例如,我们的应用程序将数据存储在Documents文件夹中.在测试中以程序方式设置数据非常痛苦.

我知道我们无法Documents从UI测试应用程序访问应用程序的文件夹.我正在寻找有关如何完成UI测试应用程序设置的想法.我们目前有一个启动参数参数,它基本上吹掉了Documents文件夹的内容.我想这样做再加上特定文件的复制.

我觉得这可能是UI目标构建阶段的一部分,但我不确定如何定位模式中选择的模拟器设备.

acm*_*6ou 0

我在生产代码中创建了一个函数来设置一些测试数据。我仅在运行 UI 测试时调用它。在函数中,我有一个像这样的 if 检查:

func setupTestData() {
    let testMode = ProcessInfo.processInfo.arguments.contains("testMode")
    if !testMode { return }
    // do any setup here
}
Run Code Online (Sandbox Code Playgroud)

在您的 UI 测试中:

override func setUpWithError() throws {
    let app = XCUIApplication()
    app.launchArguments = ["testMode"]
    app.launch()
}
Run Code Online (Sandbox Code Playgroud)

我是 iOS 新手,这是我发现为 UI 测试设置数据的唯一方法。感觉不太干净,感觉应该有更好的方法,但至少有效。