参考:
http://stackoverflow.com/questions/6060848/junit-assertequals-fails-for-two-objects
http://www.51testing.com/html/87/395287-233341.html
对于两个自定义类型MyObjClass对象,使用JUnit时,是否可以用下面的方式判断它们的内容相同呢?
assertEquals(obj1, obj2)
答案是:如果MyObjClass类重载了下面的函数,则是可以的。否则不可预期。
@Overrid
public boolean equals(Object other)
同理,是否可以这样比较两个Map内容是否相同呢?
assertEquals(map1, map2)
答案是:如果Map中的对象的类重载了上面的函数,则是可以的。否则不可预期。
比如Dog类重载equals() 方法如下:
public class Dog {
public int age;
public boolean equals(Object o) {
if (o instanceof Dog) {
return (age == o.age);
}
return false;
}
}