[kotlin] 코틀린 Mockito를 활용하여 특정 메서드 호출 여부 검증하기

코틀린에서 Mockito를 사용해 테스트 케이스를 작성할 때, 특정 메서드가 호출되었는지를 검증해야 하는 경우가 있습니다. 이때 Mockito를 활용하여 간단하게 특정 메서드 호출 여부를 확인하는 방법을 알아보겠습니다.

Mockito 의존성 추가

먼저, build.gradle 또는 build.gradle.kts 파일에 Mockito 의존성을 추가합니다.

// build.gradle
dependencies {
    testImplementation("org.mockito:mockito-core:3.11.2")
}
// build.gradle.kts
dependencies {
    testImplementation("org.mockito:mockito-core:3.11.2")
}

의존성을 추가한 후, 프로젝트를 동기화하여 Mockito를 사용할 수 있도록 설정합니다.

테스트 작성

다음은 UserService 클래스와 그에 대한 테스트 코드입니다. UserService 클래스는 saveUser 메서드를 가지고 있습니다.

class UserService {
    fun saveUser(name: String) {
        // save user logic
    }
}

이제 Mockito를 사용하여 saveUser 메서드가 호출되었는지 테스트하는 코드를 작성해보겠습니다.

import org.junit.jupiter.api.Test
import org.mockito.kotlin.mock
import org.mockito.kotlin.verify

class UserServiceTest {

    @Test
    fun `test saveUser method is called`() {
        // given
        val userService = mock<UserService>()

        // when
        userService.saveUser("John Doe")

        // then
        verify(userService).saveUser("John Doe")
    }
}

위 코드에서 mock<UserService>()를 사용하여 UserService의 mock을 생성합니다. 그런 다음 verify를 사용하여 saveUser 메서드가 “John Doe” 파라미터와 함께 호출되었는지를 확인합니다.

이렇게하면 Mockito를 사용하여 특정 메서드 호출 여부를 손쉽게 테스트할 수 있습니다.

이상으로 코틀린 Mockito를 활용하여 특정 메서드 호출 여부를 검증하는 방법에 대해 알아보았습니다.