Сравнение списков с хамкрестом - PullRequest
0 голосов
/ 07 декабря 2018

Я хочу написать unittest, который сравнивает два списка.Я пытался использовать hamcrest, чтобы получить хорошие читабельность и сообщения об ошибках, но по какой-то причине это не компилируется:

List<GDSRecord> expectedRecords = getReferenceRecords(...);

List<GDSRecord> aktualRecords = gdsNetlist.getRecords();

assertThat(aktualRecords, hasItems(expectedRecords.toArray()));

С другой стороны, это компилируется:

assertThat(asList("a", "b"), hasItems(new String[]{"a"}));

может кто-тообъяснить разницу здесь?Я не понимаю .., Спасибо!

Ответы [ 2 ]

0 голосов
/ 07 декабря 2018

Хамекраст слишком сложен для такой легкой задачи.Уборщик должен использовать стандартные утверждения junit.

assertTrue("AktualRecords should contains expectedRecords",aktualRecords.containsAll(expectedRecords));
0 голосов
/ 07 декабря 2018

Скорее всего,

expectedRecords.toArray()

будет преобразовывать его в Object[], вы можете изменить его на List.toArray​(T[] a)

expectedRecords.toArray(new GDSRecord[0])

и это должно работать.

...