Kotlin/포스팅

코틀린 매처

짜집퍼박사(짜박) 2024. 1. 10. 20:40

코틀린의 매처(Matcher)는 주로 테스트 코드에서 예상한 결과와 실제 결과를 비교하는 데 사용됩니다. 여러 테스트 프레임워크와 라이브러리에서 매처를 제공하며, 일반적으로 should 함수와 함께 사용되어 테스트 조건을 표현하는 데 유용합니다. 매처를 사용하면 테스트 코드가 더 가독성이 좋고 표현력이 풍부해집니다.

아래에서는 코틀린에서 매처를 사용하는 기본적인 방법과 몇 가지 흔한 매처들을 살펴보겠습니다.

 

Kotest 매처

Kotest에서는 Matchers 클래스를 통해 다양한 매처들을 제공합니다.

import io.kotest.matchers.shouldBe

val a = 5
val b = 10

a shouldBe 5
b shouldNotBe 5
a should beLessThan(b)
a shouldNotBeInstanceOf<String>()

위의 예제에서는 shouldBe, shouldNotBe, beLessThan, shouldNotBeInstanceOf 등의 매처를 사용하여 간단한 테스트를 작성했습니다.

 

JUnit 5 매처

JUnit 5에서는 Assertions 클래스를 통해 다양한 매처를 제공합니다.

import org.junit.jupiter.api.Assertions.assertEquals
import org.junit.jupiter.api.Assertions.assertTrue
import org.junit.jupiter.api.Assertions.assertThrows

val result = 10 / 2

assertEquals(5, result)
assertTrue(result > 0)
assertThrows(ArithmeticException::class.java) { 10 / 0 }

위의 예제에서는 assertEquals, assertTrue, assertThrows 등의 매처를 사용하여 예상한 결과와 실제 결과를 비교하고 예외를 검증했습니다.

 

Hamcrest 매처

Hamcrest는 매처 라이브러리로, JUnit과 같은 테스트 프레임워크와 함께 사용할 수 있습니다.

import org.hamcrest.Matchers.*
import org.hamcrest.MatcherAssert.assertThat

val myList = listOf("apple", "orange", "banana")

assertThat(myList, hasItem("orange"))
assertThat(myList, hasItems("apple", "banana"))
assertThat(myList, not(hasItem("grape")))

위의 예제에서는 Hamcrest의 hasItem, hasItems, not 등의 매처를 사용하여 리스트에 특정 항목이 존재하는지를 검증했습니다.

매처를 사용하면 테스트 코드를 더 읽기 쉽게 만들 수 있으며, 코드의 의도를 명확하게 전달할 수 있습니다. 특히 테스트 코드에서는 예상한 결과를 더 쉽게 표현하고 검증할 수 있게 도와줍니다.

 

With ChatGPT

'Kotlin > 포스팅' 카테고리의 다른 글

코테스트 인스펙터  (0) 2024.01.10
코틀린 인스펙터  (0) 2024.01.10
코틀린 단언문  (0) 2024.01.10
코틀린 코테스트 명세 스타일  (0) 2024.01.10
코틀린 코테스트 명세  (0) 2024.01.10