Мне нужно выполнить утверждение, что коллекция содержит все элементы из другой коллекции.Показать лучше diff при утверждении 'containsAll' в Spock
Следующий тест должен потерпеть неудачу, потому что первая коллекция не содержит 7
из второго:
def first = [6, 1, 5, 2, 4, 3]
def second = [3, 4, 2, 5, 7, 6]
expect:
first.containsAll(second)
Однако Неудачный тест не читается вообще. Не ясно, что только 7
отсутствует:
left.containsAll(right)
| | |
| false [3, 4, 2, 5, 7, 6]
[6, 1, 5, 2, 4, 3]
AssertJ сделки с, что намного лучше:
java.lang.AssertionError:
Expecting:
<[6, 1, 5, 2, 4, 3]>
to contain:
<[3, 4, 2, 5, 7, 6]>
but could not find:
<[7]>
Какое утверждение было бы идиоматических в Спока, чтобы получить лучшие сообщения об ошибках для containsAll
?
Я думаю, Спки имеют лучшую поддержку для сравнения строк, так что вы можете попробовать 'first.toString() == second.toString() '. Конечно, это грязный хак ... – injecteer