Xcode 7 UI 测试所有开关的循环

Xcode 7 UI test loop through all switches

是否可以测试 app.tables.switches 词典中存在的所有开关。当我记录测试时,该行添加了一个字符串作为键,如:

app.tables.switches["Kantoor, kntr"].tap()

但我想用 for-loop 遍历所有开关,例如(代码不起作用):

for index in 0...app.tables.switches.count {
    XCTAssertTrue(app.tables.switches[index].value, "")
}

这是在我单击 "disable all" 按钮后验证每一行的所有开关是否为 enabled/disabled 的检查。

如果您要获取字典中的值,只需使用 values 属性:

let dict = [1: true, 2: false, 3: true]

dict.values // [false, true, true]

如果你想用 for 循环检查字典中的偶数值是否为 true,你可以这样做:

for val in dict.values {
  XCTAssertTrue(val)
}

为了提供更多信息,您可以同时遍历键和值,并在收到 false:

时将键用作错误消息
let dict = ["a": true, "b": false, "c": true]

for (key,val) in dict {
  XCTAssertTrue(val, key)
}

或者,使用 contains 方法,你可以做这个漂亮的一行:

XCTAssertFalse(dict.values.contains(!))

这基本上测试字典确实 not 包含一个 not true.

的值

我终于找到了解决方案,它比我预期的要简单得多,但是使用了错误的方法。此修复是使用以下命令:

let firstSwitch = app.tables.switches.elementBoundByIndex(0)