Junit에서 AssertThat을 활용해 간단히 값을 비교할 수 있다.
assertThat(T actual, Matcher<? super T> matcher)
allOf : 내부에 선언된 모든 매쳐가 정상일 경우 통과한다.
anyOf : 내부에 선언된 매쳐중 하나 이상 통과할 경우 통과한다.
bothboth
A and B 형식으로 matcher를 사용할 수 있게 해 준다.
A, B 매쳐 둘다 통과할 경우 테스트가 성공한다.
eithereither
A or B 형식으로 matcher를 사용할 수 있게 해 준다.
A, B 매쳐 둘중 하나가 성공할 경우 테스트가 성공한다.
describedAs : 매쳐내부의 메시지를 변경할 수 있다.
everyItem : 배열이나 리스트를 순회하며 매쳐가 실행된다.
is
is는 두가지 용도로 사용할 수 있다.
A is B와 같이 비교값이 서로 같은지 여부를 확인할 경우
is가 있음으로써 쉽게 읽혀지는 테스트 코드로 변경하여 준다.
isA
비교되는 값이 특정 클래스일 경우 테스트가 통과된다.
is(instanceOf(SomeClass.class))와 동일하다.
anything : 항상 true를 반환하는 매쳐
hasItem : 배열에서 매쳐가 통과하는 값이 하나 이상이 있는지 여부를 검사한다.
hasItems : 배열에서 매쳐리스트에 선언된 값들 모두가 하나 이상 있는지 여부를 검사한다.
equalTo : 두 값이 같은지 여부를 체크한다. is와 동일하게 사용할 수 있다.
any
비교값이 매쳐의 타입과 동일한지 여부를 체크한다.
instanceOf와는 다르게 매쳐의 값은 앞서 비교값의 타입의 자식만 비교할 수 있다.
instanceOf
비교값이 매쳐의 타입과 동일한지 여부를 체크한다.
any와는 다르게 매쳐의 값은 비교값과 연관없는 경우에도 사용할 수 있다.
not
is와 동일하게 두가지 경우로 사용할 수 있다.
내부에 매쳐를 선언할 경우 내부 매쳐의결과를 뒤집는다.
not뒤에 값이 나올 경우, 같지 않을 경우 테스트가 통과한다.
nullValue : 비교값이 null일경우 테스트가 통과한다.
notNullValue : 비교값이 null이 아닐경우 테스트가 통과한다.
sameInstance
비교 매쳐의 값과 같은 인스턴스일 경우 테스트가 통과한다.
theInstance 와 동일
theInstance
비교매쳐의 값과 같은 인스턴스일 경우 테스트가 통과한다.
sameInstance 와 동일
containsString : 특정 문자열이 있는지를 검사한다.
startsWith : 특정 문자열로 시작하는지를 검사한다.
endsWith : 특정 문자열로 종료되는지를 검사한다.