Android单元测试类及其关系

官方的单元测试使用了Junit测试框架,也就是JunitFramework,下面有TestCase这个类,这个类是Android官方sdk的测试基类, 在TestCase这个类的基础上Android又扩展了一个叫AndroidTestCase的类,这个类在原来JunitTestCase的基础上又扩充了一些Android系统特性的一些属性,主要包含ApplicationTestCase、ServiceTestCase、ProviderTestCase2几个主要的子类。其中ApplicationTestCase是测试整个应用程序的类,容许注入一个模拟的Context到应用程序中,在应用程序启动以前初始化测试参数,而且在应用程序结束以后销毁它。ServiceTestCase是用来测试单个service的类,能够注入一个模拟的Context,也就是上下文,或者模拟的Application,或者让Android提供Context或者MocaApplication这样的方法。ProviderTestCase2是测试单个ContentProvider的一个类,这个测试类的测试是与操做系统孤立的,这样一些面向Android组件的测试类。在Android主要的组件中并无包含Activity这样主要的组件,Activity其实使用了Instrumentation的测试框架来实现的,也就是InstrumentationTestCase这个类,InstrumentationTestCase这个类继承也是从JunitTestCase类继承过来的,在这个类中,能够使用Instrumentation的测试框架来测试Activity。使用Instrumentation Android就能够向程序发送事件来自动化的进行UI的测试而且能够精确的控制Activity的启动,监测Activity的生命周期。InstrumentationTestCase也有几个子类,其中SingleLaunchTest Case是用来测试单个Activity的类,可以触发一次Setup、一次Tadm。而不是每一个方法调用的时候都触发。这个主要是针对单个Activity的一个测试类。另一个就是ActivityTestCase,这个类又有两个子类:ActivityInsumentationTestCase2和ActivityUnitTestCase,框架

ActivityUnitTestCase是对单个Activity进行单一测试的类,支持注入模拟的Context或者Application,用于对Activity进行单元测试的,不一样于其余的Instrumentation的类,它不能注入模拟的Intent。ActivityInsumentationTestCase2,这是一个在正常的系统环境中来测试Activity的类,它能够注入一个模拟的Intent,不一样于ActivityUnitTestCase,能够在UI线程来运行测试方法,而且能够给应用程序的UI来发送按键、触摸的事件。ActivityInsumentationTestCase2其实还有一个ActivityInsumentationTestCase这样的类,已经被官方废弃了,目前是使用的ActivityInsumentationTestCase2这样的测试类,这也是在使用Insumentation测试框架的时候最常用的一个测试类。ide

相关文章
相关标签/搜索