【发布时间】:2014-02-16 01:08:58
【问题描述】:
我只想知道是否有最佳实践或通用方法来测试对象中的 equals 实现。我的意思是已经被覆盖的测试方法。
public boolean equals(Object o)
我确实使用了一些这样的逻辑。 (假设 number 和 name 需要相等才能获得 true)
Dog d1 = new Dog(1,"Alvin");
Dog d2 = new Dog(2,"Alvin");
Assert.assertFalse(d1.equals(null));
Assert.assertFalse(d1.equals(d2));
d2.setId(1);
d2.setName("Kelvin");
Assert.assertFalse(d1.equals(d2));
d2.setName("Alvin");
Assert.assertTrue(d1.equals(d2));
Assert.assertTrue(d1.equals(d1));
但是当有很多字段时,这个任务非常大而且很无聊,所以我的问题是是否有任何框架、工具、选项,以及任何可以让这更容易并且可以证明方法已被正确覆盖的东西。谢谢。
我知道重写方法equals取决于您需要的逻辑,但测试用例创建也是如此,因此寻找一种标准方法来测试该方法,避免在测试用例中使用大量代码,如果存在明显或任何建议你可能有。
【问题讨论】:
-
除了我在那里找到我的答案之外,我的问题只是关于等于,但指出这让我找到了我发布的答案。
标签: java testing junit equals equality