【发布时间】:2015-09-24 06:46:34
【问题描述】:
我有几个项目的选择器视图:“红色”、“绿色”、“黄色”、“黑色”。在我的 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 测试 record 功能时,它不会记录选择器视图滚动事件。当我点击选择器视图项目时它会记录:
app.pickerWheels["Green"].tap()
但这在测试运行时实际上不起作用(可能是因为它需要在点击之前先滚动选择器视图)。
这是带有测试的演示应用程序。
https://github.com/exchangegroup/PickerViewTestDemo
更新
现在可以选择从 Xcode 7.0 beta 6 开始的选择器视图。
app.pickerWheels["Green"].adjustToPickerWheelValue("Yellow")
【问题讨论】:
-
真的很想知道答案。我面临着类似的问题。当然我们不能依赖生成的选择器代码。
-
在 OSX 中尚不支持。呃。
标签: ios xcode swift xctest xcode-ui-testing