[kotlin] Mockito를 사용한 코틀린에서의 상속 클래스(mocking) 테스트 방법

Mockito란 무엇일까요? Mockito는 자바에서의 mock 테스트를 위한 프레임워크로, Kotlin과 같은 JVM 언어에서도 사용할 수 있습니다.

이제 Kotlin에서 Mockito를 사용하여 상속 클래스를 mocking하는 방법에 대해 알아보겠습니다.

Mockito 및 JUnit 의존성 추가

먼저 build.gradle 파일에 Mockito 및 JUnit의 의존성을 추가합니다.

dependencies {
    testImplementation "org.mockito:mockito-core:3.11.2"
    testImplementation "org.junit.jupiter:junit-jupiter-api:5.8.0"
    testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:5.8.0"
}

의존성을 추가한 후에는 Gradle 프로젝트를 새로고침하여 라이브러리를 다운로드 받아야 합니다.

상속 클래스(Mocking) 테스트 방법

아래는 부모 클래스가 있는 상속 구조에서 Mockito를 사용하여 자식 클래스의 메서드를 mocking하는 예제입니다.

open class ParentClass {
    open fun getValue(): Int {
        return 10
    }
}

class ChildClass : ParentClass()

class MockingTest {

    @Test
    fun `test mocked method in child class`() {
        val child = Mockito.mock(ChildClass::class.java)
        Mockito.`when`(child.getValue()).thenReturn(20)

        assertThat(child.getValue()).isEqualTo(20)
    }
}

위 예제에서는 Mockito를 사용하여 ChildClassgetValue 메서드를 mocking하고, mocking한 값을 검증하는 테스트를 작성했습니다.

결론

Kotlin에서 Mockito를 사용하여 상속 클래스를 mocking하는 방법에 대해 알아보았습니다. mockito-core 라이브러리를 사용하여 원하는 동작을 가짜 객체로 만들어 테스트하는 방법을 살펴보았습니다.

더 많은 정보는 Mockito 공식 문서를 참고하시기 바랍니다.