Kotlin:
테스트 작성하기

방법:

Kotlin은 JUnit, Kotest, 그리고 모킹을 위한 MockK등 다양한 프레임워크를 포함한 테스트 주도 개발을 지원합니다. 다음은 JUnit을 사용한 간단한 예제입니다:

import org.junit.jupiter.api.Test
import kotlin.test.assertEquals

class CalculatorTest {

    @Test
    fun `adds two numbers`() {
        val calculator = Calculator()
        val result = calculator.add(2, 3)
        assertEquals(5, result)
    }
}

class Calculator {
    fun add(a: Int, b: Int): Int = a + b
}

샘플 출력

Test passed.

Kotest를 사용한 더 정교한 테스팅 접근 방식은, 더욱 Kotlin 스타일에 맞는 테스트 작성 방식을 제공합니다. 아래 예제를 참조하세요:

import io.kotest.core.spec.style.StringSpec
import io.kotest.matchers.shouldBe

class CalculatorSpec : StringSpec({
    "adding 2 and 3 should return 5" {
        val calculator = Calculator()
        calculator.add(2, 3) shouldBe 5
    }
})

모킹을 사용한 테스팅에 MockK 사용하기:

import io.mockk.every
import io.mockk.mockk
import org.junit.jupiter.api.Test
import kotlin.test.assertEquals

class ServiceTest {

    private val repository = mockk<Repository>()
    private val service = Service(repository)

    @Test
    fun `get data returns mocked data`() {
        every { repository.getData() } returns "Mocked Data"

        val result = service.getData()

        assertEquals("Mocked Data", result)
    }
}

class Service(private val repository: Repository) {
    fun getData(): String = repository.getData()
}

interface Repository {
    fun getData(): String
}

샘플 출력

Test passed.

이 예시들은 Kotlin에서 단위 테스트를 작성하는 기본 사항들을 보여줍니다. 애플리케이션이 성장함에 따라, 각 프레임워크가 제공하는 보다 고급 테스팅 기법과 도구들을 탐색하는 것을 고려해 보세요.