В следующем коде последний тест не пройден:
@Unroll
def "each #map"(Map map) {
expect:
map.each{ assert it.value != null }
where:
_ | map
_ | [foo: 1, bar: 1]
_ | [foo: 1, bar: null]
_ | [:]
}
.. с сообщением:
Condition not satisfied:
map.each{ assert it.value != null }
| |
[:] [:]
Я бы хотел считать пустую карту пассом.
Я знаю, что могу использовать «каждый». * 1009 Т.е. *
@Unroll
def "every #map"(Map map) {
expect:
map.every{ it.value != null }
where:
_ | map
_ | [foo: 1, bar: 1]
_ | [foo: 1, bar: null]
_ | [:]
}
Однако сообщения об ошибках менее привлекательны. Вместо того, чтобы перечислить неправильное значение, список всей коллекции. Это не так уж плохо, когда единственными значениями являются «foo» и «bar», но очень трудно читать при работе с большими списками.
* 1014 Т.е. *
2-й случай с каждым:
Condition not satisfied:
it.value != null
| | |
| null false
bar=null
2-й случай с каждым:
Condition not satisfied:
map.every{ it.value != null }
| |
| false
[foo:1, bar:null]
Есть ли способ использовать цикл assert и обрабатывать пустую карту как проход?