【问题标题】:Test case failed with org.junit.ComparisonFailure测试用例因 org.junit.ComparisonFailure 而失败
【发布时间】:2017-10-08 12:51:00
【问题描述】:

在为法语和捷克本地化编写单元测试用例的同时,在做

  assertThat(formattedDecimal).isEqualTo("8 771,23");

formattedDecimal 是一个字符串, 有结果

org.junit.ComparisonFailure: 
Expected :"8 771,23"
Actual   :"8 771,23"

为什么失败了?没看懂,请指教我这里做错了什么!!

【问题讨论】:

  • formattedDecimal 是 String 还是其他类型?它必须是 String 才能通过此断言,因为您将它与 String 进行比较。
  • formattedDecimal 是一个字符串
  • 好的,使用调试器检查formattedDecimal 的值以确保其中没有任何意外字符,例如,不间断空格而不是普通空格。跨度>
  • 当然,会检查相同的,但空间是可见的。
  • 调试后没有看到视觉上的差异,但有趣的是,当复制 Actual 做 isEqualTo 时,它起作用了。真的很迷茫

标签: java android unit-testing tdd testcase


【解决方案1】:

也许你的formattedDecimal 包括一些在控制台中看不到的控制字母。你试过吗?

assertThat("foo\bo").isNotEqualTo("foo");// ok
          //   ^--- it print "foo"             

assertThat(formattedDecimal.getBytes()).isEqualTo("8 771,23".getBytes())

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-16
    • 1970-01-01
    相关资源
    最近更新 更多