본 예제는 코드랩에서 제공된 TO-DO app starter code 앱 예제를 따릅니다. 예제 코드 관련하여 자세한 내용은 코드랩을 참조하세요. https://developer.android.com/codelabs/advanced-android-kotlin-training-testing-basics#0
예제 코드의 StaticsUtils.kt 에서 등록된 태스크들의 완료 상태를 퍼센티지로 계산하도록 구현된 getActiveAndCompletedStats() 함수에 대해 로컬 테스트를 작성해 보자.
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)
안드로이드 스튜디오는 작성된 함수에 대한 테스트를 쉽게 구현할 수 있도록 도구를 지원한다.

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

테스트 만들기 다이얼로그가 열린다.
클래스 이름을 StatisticsUtilsKtTest → StatisticsUtilsTest 로 변경하자.