방대한 문서보다 동작하는 소프트웨어

개발

[안드로이드] Kotest 사용

꽃게장세트 2023. 3. 15. 13:57

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
            }
        }
    }
})

참고

https://kotest.io/docs/intellij/intellij-plugin.html