等于方法的Junit

我只想知道是否有最佳实践或常用方法来测试对象中的等式实现。 我的意思是已被覆盖的测试方法。

public boolean equals(Object o)

我确实使用了这样的逻辑。 (假设数字和名字需要相等才能成立)

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方法取决于你需要的逻辑,而且测试用例的创建是,所以寻找一种标准的方法来测试避免测试用例中的大代码的方法,如果存在明显的或任何你可能有的建议。


查看重复问题的链接,我阅读@ user598656答案并建议使用MeanBeans(自动化java bean测试器)

阅读文档,我发现这个功能。

5.2.7。 物业!意义!测试!算法! 属性重要性测试算法如下:

for each property in public getter/setter method pairs do 
 create instance of class under test, object x 
 create instance of class under test, object y 
 change property of y to contain a different value 
 if property is insignificant then 
 assert x.equals(y) 
 else 
 assert x.equals(y) is false 
 end if 
end for 

这是我一直在寻找的,答案是最后一个,但在我看来这符合我的需求。


您可以使用快速代码ecllipse插件的基于字段的模板。您可以编写简单的模板,并从类中选择许多您希望使用这些字段生成语句的字段。

链接地址: http://www.djcxy.com/p/77485.html

上一篇: Junit of equals method

下一篇: LinearLayout in navigation drawer