用户界面结果测试

时间:2016-07-20 15:36:24

标签: ios appium xcode-ui-testing uitest

是否可以使用ios中的自动测试来测试用户操作的结果?例如,如果用户单击“保存”按钮,我如何检查应用程序是否创建了文件。我尝试过Appium和Apple制造的XCUITesting,但我无法弄明白。

1 个答案:

答案 0 :(得分:0)

Apple的XCUITest测试应用程序位于一个单独的进程中,无法直接访问您应用程序的沙箱,因此,除非您的应用程序的UI提供某种视觉反馈,文件已创建,无法使用官方工具检查。

您可以使用{{3>}(免责声明,我是图书馆的作者)来扩展UI测试功能,从而可以编写此类测试。例如,假设您的应用在应用中保存了 test_file.txt 。文档文件夹,您可以编写以下测试:

func testThatFileExistsAfterTap() {
    // launch app
    app = SBTUITunneledApplication()
    app.launchTunnelWithOptions([SBTUITunneledApplicationLaunchOptionResetFilesystem]) {
         // do additional setup before the app launches, if needed
    }

    app.buttons["action"].tap() // button that triggers file save

    // add some expectation on the UI to wait for the write to complete (UIActivity indicator, etc)

    let fileData = app.downloadItemFromPath("test_file.txt", relativeTo: .DocumentDirectory)

    // XCTAssert() that fileData contains the expected data
}

请注意如何传递SBTUITunneledApplicationLaunchOptionResetFilesystem,它会在启动时重置应用程序的文件系统。此选项允许您编写独立于先前会话的测试。