1
属性例如:检查两个对象是相同的,根据它们在Java
public class Fruit{
private String color;
private double weight;
...
public boolean equals(Fruit a){
return (this.getColor().equals(a.getColor()) && (this.getWeight()==a.getWeight()));
}
}
public class Orange extends Fruit{
public Orange(double weight) {
super("orange", weight);
}
}
public class NavalOrange extends Orange{
public NavalOrange(double weight) {
super(weight);
}
}
然后我写了一个关于这个测试来检查两个对象,如果它们是相同的。
Orange orange = new Orange(8);
NavalOrange navalOrange = new NavalOrange(8);
assertEquals(orange, navalOrange);
但它只是不断返回错误:
junit.framework.AssertionFailedError: expected:<[email protected]> but was:<[email protected]>
任何人都可以解释为什么这是怎么回事?我认为在toString
方法中可能会出现问题。
Your equals must take a object as a parameter;如果你需要水果,jUnit不会找到它。如果您使用的是Eclipse,请尝试右键单击Fruit类并选择Generate equals()和hashcode()。 – Pokechu22 2014-10-20 01:07:41