Что такое простой способ сравнить ArrayLists для равенства с помощью JUnit? Нужно ли реализовать интерфейс равенства? Или есть простой метод JUnit, который упрощает его?
Легкий способ сравнить ArrayLists для равенства с помощью JUnit?
Ответ 1
Вам не нужно ничего особенного для равноправия списка, просто используйте assertEquals.
ArrayList и другие списки реализуют equals(), проверяя, что все объекты в соответствующих позициях списков равны, используя метод equals() объектов. Таким образом, вы можете проверить, правильно ли реализованы объекты в реализации списка.
Ответ 2
Возможно, вы захотите проверить документацию на List.equals
.
Ответ 3
Я думаю, что это может быть немного слишком простой ответ (хотя это правильно). Тестирование ArrayLists для равных означает, что вы дали мысль о равенстве элементов. Если элементы - это целые числа, все в порядке. Но если они являются экземплярами ваших собственных классов домена, тогда вам следует знать об ошибках, связанных с равенством (и клонированием). Пожалуйста, проверьте:
http://www.artima.com/lejava/articles/equality.html
за хороший набор советов о реализации равенства. В стороне: если вам когда-либо нужно клонировать объекты, рассмотрите использование конструкторов копий вместо реализации клонируемых. Cloneable представляет целый набор проблем, которые вы, возможно, не ожидаете.