Как утверждать, что каждый предмет в коллекции находится в пределах досягаемости

У меня есть массив Groovy, который получит заданное количество случайных целочисленных значений. И я хочу заявить, что каждый элемент в массиве имеет значение в заданном диапазоне. Я пытаюсь использовать Hamcrest Matchers. Итак, мой тест выглядит так:

@Test
void testShouldReturnArrayOfStats(){
    def results = pg.rollStats()
    assertThat results, everyItem(both(greaterThan(0)).and(lessThanOrEqualTo(6)))
}

Когда я запускаю тест, я получаю assertionError

java.lang.AssertionError: Expected: every item is (a value greater than <0> and a value less than or equal to <6>)
 but: was [<6>, <3>, <5>, <4>, <3>, <2>]

Я пробовал несколько вариантов этого, но не сдам тест. просто взглянув на часть ошибки «Но: было», я могу увидеть, что все 6 значений соответствуют требованиям, но тест по-прежнему не проходит.

Я не использовал Groovy или Hamcrest очень давно, поэтому уверен, что что-то упустил. Спасибо


person TroyB    schedule 10.11.2012    source источник


Ответы (1)


Не могли бы вы просто использовать groovy?

assert results.every { it in 1..6 }
person tim_yates    schedule 10.11.2012
comment
Да, я считаю, что это работает. Я все еще новичок в Groovy, и я пытаюсь одновременно использовать несколько дополнительных инструментов. Итак, в этом случае простые отличные утверждения дают результаты, которые я ищу. Спасибо - person TroyB; 11.11.2012