[kotlin] Robolectric을 활용한 실제 프로젝트 예시

로보렉트릭(Robolectric)은 안드로이드 앱을 테스트할 때 모의 객체(Mock Objects)를 사용하는 도구로서, 안드로이드 프레임워크의 특별한 환경없이도 단위 테스트(Unit Test)를 작성할 수 있게 해줍니다. 이 게시물에서는 Robolectric을 사용하여 안드로이드 프로젝트에 대한 단위 테스트를 작성하는 방법을 살펴보겠습니다.

프로젝트 설정

가장 먼저, 안드로이드 프로젝트에 Robolectric을 추가해야 합니다. 이를 위해 build.gradle 파일에 다음과 같은 의존성을 추가합니다.

testImplementation 'org.robolectric:robolectric:4.5.1'
testImplementation 'androidx.test:core:1.3.0'
testImplementation 'androidx.test.ext:junit:1.1.2'

의존성을 추가한 뒤, 안드로이드 스튜디오를 다시 빌드하거나 Gradle 프로젝트를 새로고침하여 변경 사항을 적용합니다.

로보렉트릭을 사용한 단위 테스트 작성

이제 Robolectric을 사용하여 단위 테스트를 작성할 수 있습니다. 다음은 Robolectric을 사용하여 안드로이드 프로젝트의 MainActivity를 테스트하는 예제 코드입니다.

import androidx.test.core.app.ActivityScenario
import org.junit.Assert.assertEquals
import org.junit.Test
import org.junit.runner.RunWith
import org.robolectric.RobolectricTestRunner
import org.robolectric.annotation.Config
import com.example.myapp.MainActivity

@RunWith(RobolectricTestRunner::class)
@Config(sdk = [Config.OLDEST_SDK])
class MainActivityTest {

    @Test
    fun testMainActivity() {
        val scenario = ActivityScenario.launch(MainActivity::class.java)
        scenario.onActivity { activity ->
            val result = activity.doSomething()
            assertEquals("Expected result", result)
        }
    }
}

위의 코드는 MainActivitydoSomething 메서드를 테스트하는 단위 테스트입니다. ActivityScenario.launch를 사용하여 MainActivity를 시작하고, 이후에 예상 결과와 실제 결과를 비교하는 단언문(Assertion)을 수행합니다.

이렇게 작성된 단위 테스트 코드를 실행하여 안드로이드 앱의 핵심 기능을 안정적으로 유지할 수 있습니다. 로보렉트릭을 활용하면 모의 객체를 통한 안드로이드 앱 테스트를 효과적으로 수행할 수 있습니다.

결론

로보렉트릭을 사용하여 안드로이드 프로젝트의 단위 테스트를 작성하는 방법을 살펴보았습니다. 이를 통해 안드로이드 앱의 핵심 기능을 보다 안정적으로 유지하고 품질을 향상시킬 수 있습니다.

참고 문헌:

다음으로, 안드로이드 프로젝트의 단위 테스트를 작성하는 방법에 대해 더 배우고자 하는 경우에는 레퍼런스를 참고하시기 바랍니다.