是否可以使用ios中的自动测试来测试用户操作的结果?例如,如果用户单击“保存”按钮,我如何检查应用程序是否创建了文件。我尝试过Appium和Apple制造的XCUITesting,但我无法弄明白。
答案 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
,它会在启动时重置应用程序的文件系统。此选项允许您编写独立于先前会话的测试。