一、Instrumentation简介
Instrumentation是Android测试的核心框架,可使用它进行Android应用的单元测试和自动化测试。Instrumentation可以在主程序启动之前,创建模拟的Context;发送UI事件给应用程序;检查程序当前运行的状态;控制Android如何加载应用程序,控制应用程序和控件的生命周期;可直接调用控件的方法,对控件的属性进行查看和修改。Instrumentation框架通过将主程序和测试程序运行在同一个进程来实现这些功能。
Instrumentation位于android.app包下,与Activity处于同级目录。它是Android系统里面的一系列控制方法的集合,俗称hook钩子。这些hook可以在正常的生命周期(正常的生命周期是指操作系统控制的生命周期)之外控制Android控件的运行。如,要启动某一待测activity,activity正常的生命周期是由Intent启动的,activity本身是无法调用生命周期中onCreate()、onStrart()等相关方法的;这时activity就可以调用Instrumentation API的getActivity()方法来启动activity。
图1
图2
Android的测试套件是基于JUnit的(如图