[kotlin] 코틀린에서 Mockito를 활용하여 여러 요청에 대한 응답값(mocking) 테스트

Mockito는 코틀린에서 유닛 테스트를 작성할 때 외부 의존성을 대체하기 위해 주로 사용되는 테스트 더블 라이브러리 중 하나입니다. Mockito를 사용하여 외부 서비스에 대한 요청 및 응답값을 mocking하여 각종 시나리오에 대한 테스트를 수행할 수 있습니다.

Mockito 설치 및 설정

먼저 프로젝트 내의 build.gradle 파일에 Mockito의 의존성을 추가해야 합니다.

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

의존성을 추가한 후에는 src/test 디렉토리에 Mock 테스트를 작성할 수 있습니다.

Mockito를 활용한 mocking 예제

아래는 Mockito를 사용하여 특정 API 호출에 대한 응답값을 설정한 후에 테스트하는 간단한 예제입니다.

import org.junit.Test
import org.junit.Assert.assertEquals
import org.mockito.Mockito.`when`
import org.mockito.Mockito.mock

class ApiServiceTest {

    @Test
    fun testApiResponse() {
        val mockApiService = mock(ApiService::class.java)
        `when`(mockApiService.getData(1)).thenReturn("Mocked Data")

        val result = mockApiService.getData(1)
        assertEquals("Mocked Data", result)
    }
}

위 코드에서는 ApiService 클래스의 getData 메서드에 대한 Mock 객체를 생성하고, 해당 메서드가 1을 인자로 받을 경우 “Mocked Data”를 리턴하도록 설정하였습니다.

테스트 메소드에서는 getData 메서드에 인자로 1을 전달한 후에 “Mocked Data”가 리턴되는지를 검증하고 있습니다.

마무리

Mockito를 사용하면 외부 의존성이나 서비스 호출에 관련된 테스트에 대해 간편하게 mocking하여 테스트할 수 있습니다. 이를 통해 다양한 시나리오에 대한 테스트를 빠르게 작성하고 안정성을 확보할 수 있습니다.

더 많은 Mockito의 기능 및 활용법에 대해서는 공식 문서를 참고하시기 바랍니다.