測試是寫 library 很重要的一環,因為我們要確保自己的程式碼有一個基本的品質,測試是絕對不能馬虎的。測試 Parser 要分成兩個部分來看,一個是純 Kotlin 的部分,另一個是 Android 的部分。純 Kotlin 的部分可直接利用已定義好的 XML 檔案模擬 RSS 的資料來源,而 Android 的部分就又要在分成兩個部分來看,第一個部分是只有單純測 Android Parser 的部分,因為它跟純 Kotlin 的不同在於,我們在 Android Parser 裡面有用到 XmlPullParser
,而這個東西只有在 Android 的平台上面才有,所以我們不能像純 Kotlin Parser 一樣去跑 local unit test ,要跑在 Android 的 instrumental test 才行。要跑 instrumental test 就要跑在實機或是模擬器上面,這樣子當然是比 local unit test 慢一些。Android 測試的第二個部分就是 Reader 的測試,有包含到 RSS data fetcher 和 data base cache 等等的測試,那我們就會需要用到一些 mocking library 來協助我們去做測試,Mocking library 我們選用 MockK 來做測試。
測試方式
首先,我們要先列出有哪些案例是想要測試的,除了正常的 happy path 測試之外,也盡量去符合一些邊際條件,然後按照那些案例去寫 XML 檔案。
我們可以粗略先把案例分成幾組:
這幾組的測試案例裡面每組當然也包括了正面和反面的測試案例。接著,就可以來編一些測試用的 XML 。
對於測試的檔案有興趣的朋友可以直接到這邊看每個檔案實際上的資料長怎麼樣,這邊就不再贅述了。