[kotlin] Hamcrest의 컬렉션 매처
Hamcrest는 다양한 테스트 프레임워크에서 유용하게 사용할 수 있는 자바용 매처 라이브러리이다. Hamcrest는 컬렉션에 대한 다양한 매처를 제공하여 테스트 케이스를 보다 쉽게 작성할 수 있도록 도와준다.
컬렉션 매처 사용법
컬렉션에 대한 테스트를 작성할 때 Hamcrest의 Matchers
클래스를 사용하여 다양한 매처를 적용할 수 있다.
Hamcrest 컬렉션 매처 예제
다음은 Hamcrest를 사용하여 리스트의 크기를 확인하는 예제이다.
import org.hamcrest.MatcherAssert.assertThat
import org.hamcrest.Matchers.hasSize
import java.util.*
fun main() {
val list = Arrays.asList("Apple", "Banana", "Orange")
// 리스트의 크기가 3인지 확인
assertThat(list, hasSize(3))
}
위 예제에서 hasSize
매처를 사용하여 리스트의 크기가 3인지 확인하였다.
기타 컬렉션 매처
Matchers
클래스에는 컬렉션에 대한 다양한 매처가 제공된다.
empty
: 컬렉션이 비어있는지 확인contains
: 특정 요소를 포함하는지 확인containsInAnyOrder
: 컬렉션에 일부 또는 모든 요소를 포함하는지 확인
매처 조합
Hamcrest는 논리 연산자를 사용하여 여러 매처를 조합할 수 있다. 이를 통해 보다 복잡한 조건을 만족하는지 확인할 수 있다.
import org.hamcrest.Matchers.*
import org.hamcrest.MatcherAssert.assertThat
import java.util.*
fun main() {
val list = Arrays.asList("Apple", "Banana", "Orange")
// 리스트의 크기가 3이고, "Banana"를 포함하는지 확인
assertThat(list, both(hasSize(3)).and(contains("Banana")))
}
위 예제에서 both
와 and
논리 연산자를 사용하여 리스트의 크기가 3이고, “Banana”를 포함하는지 확인하였다.
결론
Hamcrest의 컬렉션 매처를 활용하면 컬렉션에 대한 테스트를 보다 쉽게 작성할 수 있다. 다양한 매처와 논리 연산자를 활용하여 테스트 케이스의 가독성을 높일 수 있다.
참고 문헌: