您的位置:首页 > 移动开发 > Android开发

Android SDK中的自动化测试

2016-08-11 18:14 344 查看
Android中的测试手段非常丰富。通常上,按测试运行环境来划分,可以分为本地单元测试与Instrument测试:

运行环境测试类型
PC机本地Unit Test
Android手机或模拟器Instrument Test
这两种类型测试源码在工程的位置分别为:

测试类型对应目录
本地Unit Testmodule-name/src/test/java
Instrument Testmodule-name/src/androidTest/java
这两种测试使用的Runner不同:

测试类型TestRunner
本地Unit TestJUnit4
Instrument TestJUnit3
AndroidJunit4
本地Unit Test由于使用Junit4,因此与java中的单元测试区别不大,可以灵活的使用Mockito来模拟调用Android的API。同时Android Studio在构建APP时,也会自动生成一个MockableAndroid.jar来支持这一需求。

Instrument类型测试由于类库较多,因此使用的Runner也有所不同。比较常见到的有:

类名说明Runner
ApplicationTestCaseStudio默认生成的类,用于测试Application。其可以完整控制Application的生命周期,并且可以通过setContext传入Mock的Context对象进行注入测试。Junit3
InstrumentationTestCase自Eclipse环境起常用的测试类。可以通过获取到Instrument控制APP运行,内部方法较为通用,通常需要二次封装,并且APP中改进一些测试友好的设计。Junit3
ActivityInstrumentationTestCase专门设计来测试Activity的类,不过现在已经废弃了,由ActivityInstrumentationTestCase2代替AndroidJunit4
ActivityInstrumentationTestCase2新的测试Activity的类,可以通过getAvtivity方法直接获取到被测Activity;不过查阅最新的api24文档,这个类也可能要被废弃AndroidJunit4
ServiceTestCase专门测试Service的类AndroidJunit4
以上几个类在Android SDK中就可以找到,都位于
android.test
包中。当然这个包中还有很多其他的测试类。

在Android 5.0版本起,Google又提供了一个专门用于自动化测试的Support包
Android Testing Support Library
,其中包括了测试所必要的
AndroidJUnitRunner
,还包括了两个重要组件:

Espresso
UI Automator
,这两者均是用来做UI自动化测试的框架。区别在于
Espresso
适用于单APP内部UI测试,而
UI Automator
适用于跨APP测UI测试。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息