Как сравнить два элемента, используя один из их атрибутов, используя Google Truth (юнит-тест) - PullRequest
0 голосов
/ 20 сентября 2018

Я новичок в библиотеке Google Truth, и мне было интересно, есть ли способ сравнить два элемента, используя только один из их атрибутов.Я знаю, что это можно сделать с помощью AssertJ, поэтому мне было интересно, можно ли добиться того же с помощью Истины.

Я хочу сделать что-то похожее на это.

List list1 = Method1TocreateAList ();
Список list2 = Method2ToCreateAList ();

// другой код

// Тест, который я хочу выполнить
assertThat (list2) .compareElementsByUsing (x => x.id = y)

1 Ответ

0 голосов
/ 20 сентября 2018

assertThat(list1).comparingElementsUsing(...).containsExactlyElementsIn(list2);

Добавьте вызов inOrder() в конец, если вы тоже хотите проверить заказ.

Единственный оставшийся трюк - это то, что поставить в этот раздел ...,Короче говоря, вы хотите Correspondence, чей метод compare реализован для выполнения проверки x.id == y.В настоящее время вы выполняете это путем создания подкласса Correspondence.В следующей версии Истины вы сможете написать что-то вроде:

assertThat(list1).comparingElementsUsing(resultOf(X::id)).containsExactlyElementsIn(list2);

Но это еще не готово.

...