[kotlin] 코틀린에서 Mockito를 사용하여 특정 시간 단축(mocking) 방법

코틀린으로 프로젝트를 진행하다보면 특정 시간을 가지고 테스트해야 하는 경우가 생깁니다. 그때 Mockito를 사용하여 시간을 mocking할 수 있습니다. 이 글에서는 Mockito를 사용하여 코틀린에서 특정 시간을 단축하는 방법에 대해 알아보겠습니다.

Mockito란?

Mockito는 자바에서 유닛 테스트를 위해 모의 객체(Mock objects)를 만들기 위한 라이브러리입니다. 모의 객체는 다른 객체를 대신하여 테스트에서 사용됩니다.

Mockito 사용하기

먼저, 프로젝트에 Mockito를 추가해야 합니다. Gradle을 사용하는 경우, build.gradle 파일에 Mockito 라이브러리를 추가해줍니다.

dependencies {
    testImplementation 'org.mockito:mockito-core:3.12.4'
}

이제 특정 시간을 mocking하는 코드를 작성해보겠습니다.

import org.mockito.Mockito.`when`
import java.time.LocalDateTime

fun getCurrentTime(): LocalDateTime {
    return LocalDateTime.now()
}

fun main() {
    val mockedTime = LocalDateTime.of(2022, 1, 1, 10, 0)
    `when`(getCurrentTime()).thenReturn(mockedTime)

    val currentTime = getCurrentTime()
    println("Current time: $currentTime") // 출력: Current time: 2022-01-01T10:00
}

위의 예시에서는 getCurrentTime 함수를 호출하면 현재의 시간을 반환합니다. 하지만 Mockito를 사용하여 특정 시간을 반환하도록 설정하였기 때문에, getCurrentTime 함수를 호출하면 설정한 특정 시간이 반환됩니다.

이와 같이 Mockito를 사용하여 코틀린에서 특정 시간을 mocking할 수 있습니다.

마무리

이렇게 Mockito를 사용하여 코틀린에서 특정 시간을 mocking하는 방법에 대해 알아보았습니다. 테스트 코드 작성 및 특정 상황을 가정하여 테스트하는 과정에서 매우 유용하게 사용할 수 있는 기능이니 활용해보시기를 권장합니다.

참고 문헌: