【问题标题】:Spaces and tab comparison string Xcode空格和制表符比较字符串 Xcode
【发布时间】:2018-02-18 05:16:09
【问题描述】:

我写了一个简单的测试:

   func testTabs() {
        let tabbed = "\t"
        let spaced = "    "

        XCTAssert(tabbed == spaced, "Comparison is illegal")
    }

   func testTabs() {
        let tabbed = "\t"
        let tab = "    "

        XCTAssert(tabbed == tab, "Comparison is illegal")
    }

如果使用实际的 'tab' 间距失败, 它失败了4个空格,2个空格。 因此,我比较 \ttab 并且它失败了。 (对于任何等价物也失败)。

它应该工作吗? 如果我想做测试,我不应该在字符串中使用 tab 吗? 让我说明一下我的意思:

func generateSomeString() -> String {
    let array = ["Some","Stupid","People","Don't","Read","But","Comment"]
    let string = array.joined(separator: "\t")
    return string
}

func testStrings() {
    let string = generateSomeString()
    let expectedString = "Some    Stupid    People    Don't    Read    But    Comment"
    print(string)
    XCTAssert(string == expectedString, "Comparison is illegal")
}

【问题讨论】:

  • 为什么您希望制表符等于任意数量的空格?这与比较字母 O 和数字 0 没有什么不同。换句话说,完全不一样。
  • @maddy 没错

标签: swift xcode unit-testing tabs spaces


【解决方案1】:

制表符和空格是空格,但不是一回事。

您可以将\t 替换为预期的空格数,然后进行测试...

【讨论】:

  • 是的,这种解决方法肯定会奏效。但这也意味着,如果我想使用测试,我永远不能在我的字符串中使用 \t。或者我需要用 \t 替换常量字符串中的所有空格(和/或制表符)并失去它们的可视性和可读性。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-01-28
  • 2022-12-05
  • 1970-01-01
  • 1970-01-01
  • 2017-12-07
  • 1970-01-01
相关资源
最近更新 更多