Xcode 7 UI测试循环通过所有开关

时间:2015-11-16 09:33:08

标签: xcode swift ios9 ui-testing

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

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

但我想通过for循环来循环所有开关(代码不起作用):

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

这是检查以确认在单击"禁用所有" - 按钮后是否启用/禁用了每行的所有开关。

2 个答案:

答案 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)