[kotlin] Mockito와 함께하는 코틀린에서의 테스트 데이터 주입 방법

코틀린에서 테스트를 작성할 때 종종 외부 종속성을 가진 클래스를 테스트해야 합니다. 이때 Mockito를 사용하여 테스트 데이터를 주입할 수 있습니다. 이번 포스팅에서는 Mockito를 사용하여 코틀린 클래스에 어떻게 테스트 데이터를 주입하는지 알아보겠습니다.

Mockito란?

Mockito는 Java에서 테스트하기 쉬운 모의 객체를 만들 수 있도록 도와주는 인기 있는 Mockito 프레임워크입니다. Mockito를 사용하면 외부 종속성을 목(mock) 객체로 대체하여 테스트를 수행할 수 있습니다.

코틀린에서 Mockito 사용하기

코틀린에서 Mockito를 사용하려면 먼저 Mockito 라이브러리를 프로젝트에 추가해야 합니다. Gradle을 사용한다면 build.gradle 파일에 Mockito 라이브러리를 추가해야 합니다.

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

라이브러리를 추가하고 나면 Mockito를 사용하여 테스트 데이터를 주입할 수 있습니다. 아래는 Mockito를 사용하여 코틀린 클래스에 테스트 데이터를 주입하는 간단한 예제입니다.

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

class UserServiceTest {

    @Test
    fun testGetUserName() {
        // mock 객체 생성
        val userRepository = mock(UserRepository::class.java)

        // 테스트 데이터 설정
        `when`(userRepository.getUserName(1)).thenReturn("John Doe")

        val userService = UserService(userRepository)

        // 테스트
        val result = userService.getUserName(1)

        // 확인
        assertEquals("John Doe", result)
    }
}

위 예제에서는 UserService 클래스에 UserRepository 의존성을 주입하고, Mockito를 사용하여 getUser 메서드의 반환값을 설정합니다. 그 후에는 UserServicegetUserName 메서드를 호출하여 예상 결과를 확인합니다.

결론

Mockito를 사용하면 코틀린에서도 테스트 데이터를 쉽게 주입하여 외부 종속성을 가진 클래스를 효과적으로 테스트할 수 있습니다. Mockito는 테스트 주도 개발(TDD) 및 테스트 주도 개발의 지속적 통합(CI) 환경에서 매우 유용합니다.

이상으로 Mockito를 사용하여 코틀린에서의 테스트 데이터 주입 방법에 대해 알아보았습니다.

참고: Mockito 공식 홈페이지