Xcode 7 UI 测试循环遍历所有开关

标签 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, "")
}

这是一项检查,用于验证在我单击“全部禁用”按钮后是否启用/禁用了每一行的所有开关。

最佳答案

如果你想获取字典中的值,你只需使用 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(!))

这主要是测试字典是否包含 true 的值。

关于Xcode 7 UI 测试循环遍历所有开关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33732111/

相关文章:

swift - 单元测试的 Xcode 9 代码覆盖率显示错误百分比

iphone - 如何创建与 xml Web 服务连接的注册表单?

ios - 将 Xcode 11 testresult .xcresult 转换为 JUnit?

arrays - 如何在 Swift 中创建静态数组?

ios - Xcode 7 不会从在 Xcode 6 中构建有效存档的同一项目构建有效存档

ios - 是否可以使用自动化 UI 测试通过 Instruments 运行 Network Link Conditioner?

ios - 支持 IPV6 连接的可达性

swift - 连字 SwiftUI 文本

iOS 9 状态栏元标记和启动图像链接不起作用

objective-c - xcode 7 Objective c 警告 - 将 Null 传递给需要非空参数的被调用方