更清楚的失败信息。当失败出现时,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