Android SDK中的自动化测试

本文介绍了Android中的测试方法,包括本地单元测试和Instrument测试。本地单元测试利用Junit4和Mockito进行API模拟,Android Studio提供MockableAndroid.jar支持。Instrument测试使用不同的Runner,如Espresso和Robolectric,其中Espresso适用于单APP UI测试,Robolectric支持跨APP UI测试,这两个框架在Android 5.0后的Support包中提供。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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,还包括了两个重要组件:
EspressoUI Automator,这两者均是用来做UI自动化测试的框架。区别在于Espresso适用于单APP内部UI测试,而UI Automator适用于跨APP测UI测试。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值