[kotlin] 코틀린에서 Mockito를 사용한 객체 mocking하기

코틀린에서 Mockito를 사용하여 객체를 mocking하는 방법을 알아보겠습니다.

Mockito란?

Mockito는 자바 언어용 mocking 라이브러리로, 테스트 중인 코드에서 외부 의존성을 mocking하여 목적에 맞게 동작하도록 하는 데 사용됩니다.

코틀린 프로젝트에 Mockito 추가하기

먼저, 코틀린 프로젝트에서 Mockito를 사용하려면 의존성을 추가해야 합니다. Gradle을 사용하는 경우 build.gradle 파일에 다음 의존성을 추가합니다.

testImplementation 'org.mockito:mockito-core:3.11.2'

Maven을 사용하는 경우 pom.xml 파일에 다음 의존성을 추가합니다.

<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-core</artifactId>
    <version>3.11.2</version>
</dependency>

의존성을 추가한 후 프로젝트를 새로고침하여 Mockito를 사용할 준비가 되었습니다.

객체 mocking하기

이제 실제 코드에서 객체를 mocking하는 방법을 살펴보겠습니다. 아래는 예시 클래스와 이를 mocking하는 방법입니다.

예시 클래스

class Greeting {
    fun greet(name: String): String {
        return "Hello, $name!"
    }
}

테스트 클래스

import org.junit.jupiter.api.Test
import org.mockito.Mockito.`when`

class GreetingTest {
    @Test
    fun `should return custom greeting`() {
        val mockedGreeting = mock(Greeting::class.java)
        `when`(mockedGreeting.greet("John")).thenReturn("Hello, John!")

        val result = mockedGreeting.greet("John")
        
        assert(result == "Hello, John!")
    }
}

위의 코드에서 mock 함수를 사용하여 Greeting 클래스의 mocked 인스턴스를 생성하고, when 함수를 사용하여 greet 메서드에 대한 동작을 정의하고 있습니다.

이제 위의 예제를 참고하여 Mockito를 사용하여 Kotlin에서 객체를 mocking하는 방법을 적용해 볼 수 있습니다.

더 자세한 내용은 Mockito 공식 문서를 참고하시기 바랍니다.

마무리

이제 Mockito를 사용하여 Kotlin에서 객체를 mocking하는 방법을 알아보았습니다. Mockito를 사용하여 테스트 중인 코드의 의존성을 효과적으로 mocking함으로써 테스트 작성을 더욱 쉽고 효율적으로 수행할 수 있습니다.