我有几个项目的选择器视图:“红色”、“绿色”、“黄色”、“黑色”。在我的 UI 测试中,我需要从中选择一个特定的项目“绿色”。我正在使用 Xcode 7 引入的 XCTest UI 测试 API。
到目前为止,我设法在单元测试中向上滑动整个选择器视图。这并不理想,因为它总是将选择器视图更改为底部项目(向上滑动时)。
let app = XCUIApplication()
app.launch()
app.pickers.elementAtIndex(0).swipeUp()
XCTAssert(app.staticTexts["Selected: Black"].exists)
改变选择器视图的另一种但非常相似的方法是调用pressForDuration ... thenDragToElement
,这不是我想要的。
app.pickers.elementAtIndex(0).pressForDuration(0.1, thenDragToElement: someElement)
当我使用 UI 测试记录功能时,它不会记录选择器视图滚动事件。当我点击选择器视图项目时它会记录:
app.pickerWheels["Green"].tap()
但这在运行测试时实际上不起作用(可能是因为它需要在点击之前先滚动选择器视图)。
这是带有测试的演示应用程序。
https://github.com/exchangegroup/PickerViewTestDemo
更新
现在可以从 Xcode 7.0 beta 6 开始选择选择器视图。
app.pickerWheels["Green"].adjustToPickerWheelValue("Yellow")