Swift XCUI 字符串断言失败
Swift XCUI string assertion failing
我正在使用 xcode 8.3.3 并编写 XCUI 测试。
我有以下内容:
let address = XCUIApplication().buttons["URL"].value as! String
查看调试器,我可以看到值为:
如果我设置
expectedURL = "\u{e2}auth.int....net"
然后 returns:
如果我设置
expectedURL = "auth.int....net"
然后 returns:
如何让测试断言发现两个字符串相等?
尝试了以下方法,但它没有替换“\u{e2}”:
let address = value.components(separatedBy: ",").first!.replacingOccurrences(of: "\u{e2}", with: "")
还有(但它不会取代“\u{e2}”):
let range = Range<String.Index>(uncheckedBounds: (lower: address.startIndex, upper: address.endIndex))
let strippedAddress = address.replacingOccurrences(of:"\u{e2}", with: "", options: .literal, range: range)
对于断言,我使用 XCTAssertEqual(address, expectedURL)
您可以通过用字母数字字符分隔然后用空字符串连接来修复它,如下所示。
let myString = address.components(separatedBy: CharacterSet.alphanumerics.inverted).joined(separator: "")
myString
等于 authintxxxxxxxxxnet(没有“.”字符),因此您应该能够更改预期的 URL 以匹配。
希望对您有所帮助!
我正在使用 xcode 8.3.3 并编写 XCUI 测试。
我有以下内容:
let address = XCUIApplication().buttons["URL"].value as! String
查看调试器,我可以看到值为:
如果我设置
expectedURL = "\u{e2}auth.int....net"
然后 returns:
如果我设置
expectedURL = "auth.int....net"
然后 returns:
如何让测试断言发现两个字符串相等?
尝试了以下方法,但它没有替换“\u{e2}”:
let address = value.components(separatedBy: ",").first!.replacingOccurrences(of: "\u{e2}", with: "")
还有(但它不会取代“\u{e2}”):
let range = Range<String.Index>(uncheckedBounds: (lower: address.startIndex, upper: address.endIndex))
let strippedAddress = address.replacingOccurrences(of:"\u{e2}", with: "", options: .literal, range: range)
对于断言,我使用 XCTAssertEqual(address, expectedURL)
您可以通过用字母数字字符分隔然后用空字符串连接来修复它,如下所示。
let myString = address.components(separatedBy: CharacterSet.alphanumerics.inverted).joined(separator: "")
myString
等于 authintxxxxxxxxxnet(没有“.”字符),因此您应该能够更改预期的 URL 以匹配。
希望对您有所帮助!