【发布时间】:2014-06-21 11:32:51
【问题描述】:
我正在关注 Kent Beck 的示例测试驱动开发。
相关章节可以在a preview online here找到。
肯特写道:
我们可以使用包含两种货币的二元数组作为键吗? Array.equals() 是否检查元素是否相等?
public void testArrayEquals() {
assertEquals(new Object[] {"abc"}, new Object[] {"abc"});
}
不。测试失败,所以我们必须为密钥创建一个真实的对象
但是当我运行测试时它通过了。
我认为 assertEquals 会检查 Array.equals() 来检查相同的对象,而不是内容,因此测试会失败,但它不会(至少对我来说不是)。
另一方面:
System.out.println( new Object[]{"abc"}.equals(new Object[]{"abc"}) );
按预期打印 false...
Eclipse 告诉我 assertEquals(Object[], Object[]) 现在已弃用,但为了理解,为什么现在测试通过了?
【问题讨论】:
标签: java arrays junit tdd equals