Я пишу простой тест, который проверяет метод, возвращающий некоторый интерфейс ниже Collection
. Я стараюсь как можно больше абстрагировать внутреннее представление этой коллекции, чтобы этот тест прошел в обоих случаях: когда метод возвращает List
и Set
.Тестирование равенства коллекции с заказом
Предполагается, что Set
(LinkedHashSet
или LinkedHashMap
поддержал Set
), поэтому я должен проверить заказ. Так вообще-то я хотел бы написать тест, как это:
assertThat(returnedList, containsOrdered('t1", "t2", "t3"));
, который подведет тогда и только тогда обе коллекции не является «тем же» (то есть один и тем же значением в том же упорядоченности).
Я нашел библиотеку Hamcrest полезной в этом случае, однако я застрял в ее документации. Любая помощь будет оценена, однако я постараюсь избежать написания CollectionTestUtil или моего собственного Hamcrest Matcher
, если это возможно.
Не могли бы вы предоставить полный пакет и путь класса к этому методу? Вы используете assertThat от JUnit или от Hamcrest? Это какая-то разница? –
У меня была неправильная версия библиотеки hamcrest, так как я тянул hamcrest-all зависимость. Я исправил его вместе с проблемами перекрытия junit (есть артефакт junit-dep, который не обеспечивает hamcrest, поэтому есть возможность добавить полную поддержку hamcrest). Спасибо за вашу помощь –