2012-11-10 8 views
4

나는 임의의 정수 값을 얻을 수있는 그루비 배열을 가지고 있습니다. 그리고 배열의 각 항목에 주어진 범위 내의 값이 있다고 주장하고 싶습니다. 나는 Hamcrest Matchers를 사용하려고합니다. 그래서 내 테스트는 다음과 같습니다컬렉션의 모든 항목이 범위 내에 있음을 주장하는 방법

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

내가 테스트를 실행하면 내가이 어떤 변화를 시도했습니다

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>] 

를 지정해 AssertionError를 얻을 수 있지만이 통과 시험을받지 못했습니다. 오류의 "But : was"부분을 보면 모든 6 개의 값이 요구 사항을 충족한다는 것을 알 수 있지만 테스트는 여전히 실패합니다.

저는 Groovy 나 Hamcrest를 오랫동안 사용하지 않았기 때문에 뭔가 빠졌습니다. 감사합니다.

답변

4

그루비를 사용할 수 있습니까?

assert results.every { it in 1..6 } 
+0

예, 믿습니다. 나는 여전히 그루비에 익숙하지 않고, 동시에 몇 가지 추가 도구를 통합하려고합니다. 그래서이 경우 간단한 그루비 어설 션을 통해 내가 원하는 결과를 얻을 수 있습니다. 감사 – TroyB