1

我想写一个测试,我需要调整我的pickerWheel。我的 pickerWheel 不止一行,我可以通过以下方式访问它:

pickerWheels[0].adjust(toPickerWheelValue: "1. Mai")

它给我一个错误:

断言失败::0:内部错误:无法在可能的值中找到当前值“Mai 4”... 4. Mai

所以'Mai 4'实际上在可能的值中,但格式错误。有没有什么办法解决这一问题?

我已经阅读了https://forums.developer.apple.com/thread/16104但 .adjust 对我的不同行运行良好。

4

1 回答 1

1

这是使用 viewForRow 覆盖代替 titleForRow 的 UIPickerView 实现的一个老问题。它至少可以追溯到 2014 年,截至 2019 年 8 月还没有解决方案: Apple Developer Thread

一个简单的解决方法是实现选择器的 titleForRow 覆盖以进行 UI 测试,并恢复到生产中通常更复杂的 viewForRow 方法。

作为替代方案,如果您可以在选择器视图测试中只处理第一个和最后一个条目,请使用 swipeUp() 和 swipeDown() 方法。无论文本或字段数量如何,这些都将分别选择第一个或最后一个项目。就像是:

let pickerWheel = app.pickers.children(matching: .pickerWheel).element
    pickerWheel.swipeUp()
    pickerWheel.tap()

但是 adjustToPickerWheelValue 完全被破坏了。当前的雷达条目是: pickerView 测试失败

于 2019-08-15T23:20:09.160 回答