本篇开始将介绍几个重量级的测试框架,首先介绍的是Android最早推出的便于进行程序深入的,系统性的单元测试的框架–Instrumentation。
Instrumentation从android2.3甚至更早版本就存在了,很多Android自动化测试框架都是对于Instrumentation的直接使用或二次开发,例如:Robotium。
在学习Instrumentation之前,先了解一下Junit,作为一款成熟的单元测试框架,Junit的目的非常明确:通过该框架可以为被测代码编写相应的测试代码,快速定位错误,节省调试时间,最终提高代码健壮性。
在测试Android程序时,也可以使用Junit进行测试,但是有前提条件,测试的case中不能存在Android的API相关的测试用例,也就是说只能包含Java层相关的测试。
因为在Junit设计初期,不可能考虑到Android系统的各种要求,但是一个Android应用自然会包含各种控件,activity,service等Android自身特有的东西,而要将Junit的思想应用到Android系统上,就必须针对Android系统的各种要求对Junit进行扩展,进行二次封装。Instrumentation也就应运而生。
Instrumentation 是Android SDK在Junit上的扩展,提供了AndroidTestCase类及系列子类,其中一个最重要的类是ActivityInstrumentationTestCase2;
使用Instrumentation测试时,需在测试类中继ActivityInstrumentationTestCase2。
然后重写几个方法,setUp(),tearDown();
而测试的用例,要