這邊介紹我使用的工具,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,如果不是的話,使用
留言
張貼留言
有什麼想法歡迎跟我們分享