ProgramingTip

Hamcrest를 여러 개의 올바른 또는 일치 운영합니까?

bestdevel 2020. 10. 28. 20:23
반응형

Hamcrest를 여러 개의 올바른 또는 일치 운영합니까?


나는 매처에 익숙하지 않습니다. 나는 JUnit과 함께 햄 크레스트가지고 놀았고 나는 그것을 좋아한다.

객관식 중 하나가 맞다고 말할 수있는 방법이 있습니까?

같은 것

assertThat( result, is( either( 1, or( 2, or( 3 ) ) ) ) ) //does not work in hamcrest

테스트중인 메서드는 컬렉션의 한 요소를 반환합니다. 목록에는 여러 후보가 있습니다. 내 현재 구현은 첫 번째 히트를 반환하지만 요구 사항은 아닙니다. 가능한 후보자 중 하나가 반환 테스트 케이스가 성공하기를 바랍니다. 이것을 Java로 어떻게 표현 하시겠습니까?

(나는 햄 크레스트 대안에 열려 있습니다)


assertThat(result, anyOf(equalTo(1), equalTo(2), equalTo(3)))

에서 Hamcrest 튜토리얼 :

anyOf- 일치하는 일치하고 일치하고, (예 : Java ||)

Javadoc을 참조하십시오 .

또한, 당신은 자신의 Matcher를 사용할 수 있습니다.


marcos가 맞지만 몇 가지 다른 옵션도 있습니다. 우선, 다음 중 하나 있습니다.

assertThat(result, either(is(1)).or(is(2)));

그러나 두 개 이상의 항목이 있으면 아마도 다루기 어려울 것입니다. 매일 typechecker는 가끔 그런 것들에 이상해입니다. 귀하의 경우 다음을 수행 할 수 있습니다.

assertThat(result, isOneOf(1, 2, 3))

또는 이미 배열 / 컬렉션에 옵션이있는 경우 :

assertThat(result, isIn(theCollection))

Javadoc을 참조하십시오 .

참고 URL : https://stackoverflow.com/questions/152714/multiple-correct-results-with-hamcrest-is-there-an-or-matcher

반응형