JUnit AssertEquals失败

dus*_*kin 0 java junit junit4

我有一个代码,用于以下

import static org.junit.Assert.assertEquals;

System.out.println("obj1 name = " + obj1.getName());
System.out.println("obj1 value = " + (obj1.getvalue() == null ? "null" : "not null"));
System.out.println("obj2 name = " + obj2.getName());
System.out.println("obj2 value = " + (obj2.getvalue() == null ? "null" : "not null"));

assertEquals(obj2, obj1);
Run Code Online (Sandbox Code Playgroud)

产量

obj1 name = DC2
obj1 value = null
obj2 name = DC2
obj2 value = null

java.lang.AssertionError: 
Expected :com.gms.contract.myClass.inventory.MyClass@795ce9b5
Actual   :com.gms.contract.myClass.inventory.MyClass@280cb0b4
Run Code Online (Sandbox Code Playgroud)

是不是assertEquals假设按值进行比较?它在我看来它比较对象地址.但也许我错了?...

谢谢!

And*_*ner 7

是不是assertEquals假设按值进行比较?

不,它应该使用该equals方法进行比较.

你需要重写equalsMyClass(并重写hashCode相应).

它在我看来它比较对象地址.

不,这只是调用的结果toString()MyClass,而您不必重写它.如果你想要显示更有意义的东西,toString()也可以覆盖.