更清楚的失敗信息。當失敗出現時,Espresso努力提供豐富的調試信息。并且,你能自定義你自己的Failure Handler針對Failure進行處理。
總結
為了提高代碼的質量以及測試效率,針對業務邏輯要盡量使用單元測試保證各個程序單元的正確性,避免在集成時才發現問題。編寫單元測試時如果能使用普通的unit test,就使用unit test,如果不行才使用instrumentation test。做普通的unit test時建議使用Robolectric+powermock+mockito。
做功能測試時,如果是單個應用的測試則建議使用Espresso做自動化測試,如果還需要和系統交互,或者需要在多個應用之間切換,則建議使用UIAutomator做自動化測試。
espresso的使用介紹: https://developer.android.com/training/testing/ui-testing/espresso-testing.html
UIAutomator的使用介紹: https://developer.android.com/training/testing/ui-testing/uiautomator-testing.html#setup
另外建議搭建持續集成服務,在向Gitlab上提交代碼時自動執行單元測試(這里的單元測試是不需要連接手機就可以執行的),如果單元測試有問題則自動發郵件通知相關人員修改。通過單元測試后,在合并到master分支時,再自動進行一輪比較大的單元測試,單元測試通過后再通知相關人員做代碼 review,代碼review的工作并不是用于保證代碼沒有Bug,而是用于檢測代碼是否符合設計理念,代碼邏輯的歸屬類是否是正確的,有沒有符合代碼規范等等,做代碼Review可以防范問題: 不斷添加新功能導致的程序架構腐蝕,最終讓程序不可控,失去了結構,象一團亂碼。
另外建議上線前的用例測試都做成自動化的集成測試用例(也是功能測試用例),避免重復勞動,測試人員將手機連接到電腦,然后執行測試用例時,測試人員可以去喝杯水了。
原文轉自: http://www.cloudchou.com/android/post-909.html