iT邦幫忙

第 12 屆 iThome 鐵人賽

DAY 26
0
自我挑戰組

30 天開發 Android App 的流水帳系列 第 26

Day 26:回頭檢視 Unit Test(2/2)

在開始今天的主題之前,先跟大家分享一個好消息,Google Play 拒絕了 App 的上架申請。以第一次申請來說,只花三天的時間審核,比預期上快了很多。說是好消息,是因為拒絕的理由,也許之後也會碰到,可以藉這次機會檢視是哪些地方需要注意的。如何處理被拒絕上架的,就留著明天的篇幅來說吧。

複習一下昨天的進度,把原本 ProfileListResponseTest 驗證 results 下的 Profile 物件要搬進去 ProfileTest 裡面。先來看看 Profile 當初想要驗證的內容,主要有下列兩個:

  • gender:以 enum 的方式處理,想確認是否如預期的取得對應的內容
  • filmIds:會回傳對應的 film id 們

所以回頭檢視 result 下原始 JSON 資料,有沒有可驗證不同 Gender enum 的資料先拉出來,分別是 MALE、 FEMALE 和 NONE,而這三筆資料底下的 films 都有值。因此 test 的部份會拆成對這些邏輯個別進行驗證

  • genderFemaleTest
  • genderMaleTest
  • genderNoneTest
  • filmIdsTest

來看看最後的成果吧:

class ProfileTest : BaseTest() {
    @Test
    fun genderFemaleTest() {
        val profile = getProfile("profile_female")
        Assert.assertEquals(Gender.FEMALE, profile.genderType)
    }

    @Test
    fun genderMaleTest() {
        val profile = getProfile("profile_male")
        Assert.assertEquals(Gender.MALE, profile.genderType)
    }

    @Test
    fun genderNoneTest() {
        val profile = getProfile("profile_none")
        Assert.assertEquals(Gender.NONE, profile.genderType)
    }

    @Test
    fun filmIdsTest() {
        val filmIds = getProfile("profile_filmIds").filmIds
        Assert.assertEquals("1", filmIds[0])
        Assert.assertEquals("2", filmIds[1])
        Assert.assertEquals("3", filmIds[2])
        Assert.assertEquals("6", filmIds[3])
    }

    private fun getProfile(fileName: String): Profile {
        return Gson().fromJson(
            readJsonFile(fileName),
            Profile::class.java
        )
    }
}

上一篇
Day 25:回頭檢視 Unit Test(1/2)
下一篇
Day 27:重新提出 App 審核申請
系列文
30 天開發 Android App 的流水帳32

尚未有邦友留言

立即登入留言