Mobile軟體測試(3)測試的工具



這邊介紹我使用的工具,E2E使用Appium這是可以從使用者介面(UI)的角度跨平台測試Android、iOS、Web的工具,Integration Test的部分是採用Espresso + UI Automator的方式測試,需注意這邊非跨平台,只適用於Android,我相信iOS也有類似的工具,Unit Test的部分則是採用TestNG + JMockit,這邊也是只適用於Android。


為什麼選TestNG而不是選擇Junit?Junit看名字就知道,當初是從單元測試的角度設計出來的,所以在做Integration Test就沒這麼靈活與方便,不過後來Junit還是有不斷的學習抄襲跟進步就是。

TestNG有強大的Annotations,搭配靈活的參數,可以達到很多方便的效果!


也有方便的資料驅動測試的模式

在使用Appium有些測試會有順序上的考量時,TestNG就顯得相當好用,不過現在Junit 4.11也有順序的概念了,不過使用較不直覺(參考Espresso測試順序)


Mockito是Java最有名的mock工具

但要配合依賴注入使用,所以程式在寫的時候就要有這樣的思維,也就是可測性

強大的mock工具,不管是private、static還是final,它通通都可以mock。

而且它不需要留接口,不用透過依賴注入的方式,就可以直接替換物件。

如果大家有看過海賊王,這簡直跟手術果實一樣的能力啊,可以替換器官卻不會留下任何傷口!!!

可以讓可讀性提高的斷言library

如果以Android配合J2Objc的角度,建議的單元測試工具是
  • Junit
  • mockito
  • hamcrest
上面這套也建議新手選用,如果只是單元測試,其實也可以將mockito換成JMockit,但如果還要配合Espresso,那也只能用mockito,如果不是的話,使用
會是更好的選擇



留言