【发布时间】:2019-04-04 02:25:05
【问题描述】:
我知道== 在比较两个Strings 时存在一些问题。似乎String.equals() 是一种更好的方法。好吧,我正在做 JUnit 测试,我倾向于使用 assertEquals(str1, str2)。这是断言两个字符串包含相同内容的可靠方法吗?我会使用assertTrue(str1.equals(str2)),但是您不会看到失败时的预期值和实际值是什么。
在相关说明中,是否有人提供指向明确解释str1 == str2 问题的页面或主题的链接?
【问题讨论】:
-
如果您不确定,您可以阅读代码或 Javadoc。顺便说一句,如果你想测试它们是同一个对象,你可以使用 assertSame。
-
如果 str1 和 str2 为 null,assertEquals() 为 true,但 assertTrue(str1.equals(str2)) 抛出异常。第一个示例还会打印一条有用的错误消息,例如 str1 和 str2 的内容,第二个不会。