Kotest 예외 테스트(Testing Exceptions)

Kotest에서의 예외 테스트에 대해 설명한다.

Kotest 예외 테스트

Kotest를 사용하면 예외를 쉽게 테스트할 수 있다:

package com.devkuma.kotest.tutorial.exceptions

import io.kotest.assertions.throwables.shouldNotThrow
import io.kotest.assertions.throwables.shouldThrow
import io.kotest.core.spec.style.FreeSpec
import io.kotest.matchers.shouldBe

class ExceptionTest : FreeSpec({

    "예외 발생 테스트" - {
        "예외가 발생하는 경우" {
            // 예외가 발생하는 코드를 실행하고 해당 예외를 잡는다.
            val errorProneFunction: () -> Unit = {
                throw IllegalArgumentException("예외 발생!")
            }
            val exception = shouldThrow<IllegalArgumentException> {
                errorProneFunction()
            }

            // 예상한 예외가 발생한 경우 테스트를 통과한다.
            exception.message shouldBe "예외 발생!"
        }

        "예외가 발생하지 않는 경우" {
            // 예외가 발생하지 않는 코드를 실행하고 예외가 발생하지 않음을 확인한다.
            val safeFunction: () -> Unit = {}
            val exception = shouldNotThrow<IllegalArgumentException> {
                safeFunction()
            }

            // 예외가 발생하지 않은 경우 테스트를 통과한다.
            exception shouldBe null
        }
    }
})

참조




최종 수정 : 2024-04-21