Я использую JUnit в Android Studio, и либо я полностью с видом что-то, или JUnit просто не работает правильно ... Я получил этот пример кода:Junit не правильно сравнивает объекты?
ChatContent testContent = new ChatContent(new ArrayList<ChatMessage>());
ChatContent testContent2 = new ChatContent(new ArrayList<ChatMessage>());
assertThat(testContent, equalTo(testContent2));
И когда я запустить тест, Я получаю сообщение об ошибке
java.lang.AssertionError: Expected: [...][email protected] but: was [...][email protected] Expected :[...][email protected]
Actual :[...][email protected]
Это не должно было случиться, потому что equalTo() только проверка на равенство и не верно равенство как ==
делает, верно?
ChatContent - это в основном просто класс, который содержит экземпляр List<ChatMessage>
, он не делает ничего другого.
В настоящее время я использую jUnit, Mockito и Hamcrest (все обновленные) в моем проекте.
ли вы переопределить '' equals' в ChatContent'? – khelwood
== сравнивает ссылки. Это всегда будет ложным, если у вас есть два вызова нового. – duffymo
@duffymo Он сравнивает, к чему относятся ссылки «redidrect». @hhelwood Нет, потому что это было необязательно. И я бы не считал хорошей практикой переопределять 'toString()', 'equals()' и т. Д. В каждом классе, который я создаю ... – Namnodorel