是否有可能测试app.tables.switches字典中存在的所有开关。当我记录测试时,行添加了一个字符串作为键,如:
app.tables.switches["Kantoor, kntr"].tap()
但我想通过for循环来循环所有开关(代码不起作用):
for index in 0...app.tables.switches.count {
XCTAssertTrue(app.tables.switches[index].value, "")
}
这是检查以确认在单击"禁用所有" - 按钮后是否启用/禁用了每行的所有开关。
答案 0 :(得分:2)
如果您想要获取字典中的值,只需使用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 true
。
答案 1 :(得分:-2)
我终于找到了解决方案,它的方式比我预期的简单,但使用了错误的方法。此修复程序是使用以下命令:
let firstSwitch = app.tables.switches.elementBoundByIndex(0)