Swift XCUI 字符串断言失败
Posted
技术标签:
【中文标题】Swift XCUI 字符串断言失败【英文标题】:Swift XCUI string assertion failing 【发布时间】:2017-07-06 17:22:49 【问题描述】:我正在使用 xcode 8.3.3 并编写 XCUI 测试。
我有以下几点:
let address = XCUIApplication().buttons["URL"].value as! String
在调试器中查看,可以看到值为:
如果我设置
expectedURL = "\ue2auth.int....net"
然后返回:
如果我设置
expectedURL = "auth.int....net"
然后返回:
如何让测试断言找到两个字符串相等?
尝试了以下方法,但它不能替换“\ue2”:
let address = value.components(separatedBy: ",").first!.replacingOccurrences(of: "\ue2", with: "")
还有(但它不会取代“\ue2”):
let range = Range<String.Index>(uncheckedBounds: (lower: address.startIndex, upper: address.endIndex))
let strippedAddress = address.replacingOccurrences(of:"\\ue2", with: "", options: .literal, range: range)
对于断言,我使用的是XCTAssertEqual(address, expectedURL)
【问题讨论】:
【参考方案1】:您可以通过字母数字字符分隔然后用空字符串连接来修复它,如下所示。
let myString = address.components(separatedBy: CharacterSet.alphanumerics.inverted).joined(separator: "")
myString
然后等于 authintxxxxxxxxxnet(没有“.”字符),所以您应该能够更改您的预期 URL 以匹配。
希望有帮助!
【讨论】:
以上是关于Swift XCUI 字符串断言失败的主要内容,如果未能解决你的问题,请参考以下文章
Firebase swift ios 登录系统错误断言失败/Exec_BAD_INSTRUNCTION (code=EXC_i386_INVOP, subcode=0x0)