【发布时间】:2016-01-15 21:33:57
【问题描述】:
我有一个应用程序,其主要目的是将数据输入 HealthKit。我想编写一些 Xcode UI 测试来验证它是否成功写入了这些数据,但是我在验证 Health 应用程序中的数据时遇到了一些困难。
当我最初记录我的测试时,它跳过了我模拟的主页按钮按下,但当我滑动到第一个主屏幕并导航到健康应用程序以显示数据点时它正在记录。
我搜索了如何按下主页按钮,发现了这个(有效):
XCUIDevice.shared.press(.home)
但是,它记录的其他调用实际上都不适用于应用程序之外的导航。在主屏幕上滑动的记录代码显然看起来不对,当我将tap()替换为swipeRight()或swipeLeft()时也不起作用:
app.childrenMatchingType(.Window).elementBoundByIndex(1).childrenMatchingType(.Other).elementBoundByIndex(1).childrenMatchingType(.Other).element.childrenMatchingType(.Other).element.childrenMatchingType(.Other).elementBoundByIndex(0).childrenMatchingType(.ScrollView).element.tap()
接下来的几行,用于在主屏幕上启动应用程序,甚至不适用于当前可见页面上的应用程序图标:
let elementsQuery = app.scrollViews.otherElements
elementsQuery.icons["Health"].tap()
有什么方法可以实现我正在尝试做的事情,还是我需要等待验证端到端测试,直到我将 HealthKit 读取功能添加到我的应用程序?
【问题讨论】:
标签: ios xcode healthkit xcode-ui-testing