Kotest 사용
안드로이드에서 Kotest 를 사용하려면 3 가지 설정이 필요합니다.
- 안드로이드 스튜디오 플러그인 설치
- 라이브러리 추가
- JUnit Platform 그래들 플러그인 추가
안드로이드 스튜디오 플러그인
Kotest 에서 만든 플러그인 입니다. 안드로이드 스튜디오에서 플러그인을 검색하여 손쉽게 설치 할 수 있습니다.
라이브러리 추가
dependencies {
...
testImplementation("io.kotest:kotest-runner-junit5:$version")
...
}
JUnit Platform 그래들 플러그인 추가
앱 수준의 build.gradle 에 플러그인을 추가합니다.
android.testOptions {
unitTests.all {
it.useJUnitPlatform()
}
}
테스트 코드 작성
여러가지 스타일의 테스트 코드 작성법이 있습니다. 개인이나 팀에 맞는 스타일로 작성하시면 됩니다. 테스트 클래스가 어떤 부모클래스를 두느냐에 따라 작성 방법이 달라집니다.
필자는, BehaviorSpec 을 선호 합니다.
class AssetsTest : BehaviorSpec({
Given("유투브의 id, thumbnail(url) 항목이 있는 json 리스트를 객체로 불러와서") {
val json = ResourceHelper.loadString("video_list.json")
val items = Json.decodeFromString<List<VideoResponse>>(json!!)
When("첫번째 항목을 가져오면") {
val item = items.firstOrNull()
Then("thumbnail 은 https://img.youtube.com/vi/jd65cGdIB6w/mqdefault.jpg 이고") {
"https://img.youtube.com/vi/jd65cGdIB6w/mqdefault.jpg" shouldBe item?.thumbnail
}
Then("videoId 는 jd65cGdIB6w 이다") {
"jd65cGdIB6w" shouldBe item?.videoId
}
}
}
})