JUnit AssertEquals не работает - PullRequest
       5

JUnit AssertEquals не работает

0 голосов
/ 02 октября 2018

У меня есть код, который для следующих

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);

дает

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

Разве assertEquals не предполагает сравнивать по значению ??Мне кажется, что он сравнивает адреса объектов.Но, может быть, я ошибаюсь? ...

Спасибо!

1 Ответ

0 голосов
/ 02 октября 2018

Разве assertEquals не предполагает сравнение по значению ??

Нет, оно должно сравниваться с использованием метода equals.

Вам необходимо переопределить equals in MyClass (и соответственно переопределить hashCode).

Мне кажется, что он сравнивает адреса объектов.

Нет, это просто результат вызова toString() для MyClass без переопределения.Если вы хотите, чтобы показывалось что-то более значимое, переопределите toString().

...