본 예제는 코드랩에서 제공된 TO-DO app starter code 앱 예제를 따릅니다. 예제 코드 관련하여 자세한 내용은 코드랩을 참조하세요. https://developer.android.com/codelabs/advanced-android-kotlin-training-testing-basics#0

예제 코드의 StaticsUtils.kt 에서 등록된 태스크들의 완료 상태를 퍼센티지로 계산하도록 구현된 getActiveAndCompletedStats() 함수에 대해 로컬 테스트를 작성해 보자.

1. 테스트 클래스 만들기

getActiveAndCompletedStats() 함수는 작업 목록들을 받아와서 StatsResult를 반환한다.

StatsResult는 진행 중인 작업과 완료된 작업의 두 퍼센티지 숫자가 포함된 데이터 클래스이다.

// StaticsUtils.kt

internal fun getActiveAndCompletedStats(tasks: List<Task>?): StatsResult {

   val totalTasks = tasks!!.size
   val numberOfActiveTasks = tasks.count { it.isActive }
   val activePercent = 100 * numberOfActiveTasks / totalTasks
   val completePercent = 100 * (totalTasks - numberOfActiveTasks) / totalTasks

   return StatsResult(
       activeTasksPercent = activePercent.toFloat(),
       completedTasksPercent = completePercent.toFloat()
   )
  
}

data class StatsResult(val activeTasksPercent: Float, val completedTasksPercent: Float)

안드로이드 스튜디오는 작성된 함수에 대한 테스트를 쉽게 구현할 수 있도록 도구를 지원한다.

스크린샷 2022-04-17 오후 3.18.22.png

테스트할 함수를 우클릭 > [Generate] > [Test]

스크린샷 2022-04-17 오후 3.20.16.png

테스트 만들기 다이얼로그가 열린다.

클래스 이름을 StatisticsUtilsKtTest → StatisticsUtilsTest 로 변경하자.