《Android上的单元测试》由会员分享,可在线阅读,更多相关《Android上的单元测试(13页珍藏版)》请在金锄头文库上搜索。
1、Android上的单元测试上的单元测试.Junit简介在 Java下做单元测试的必用工具提供了一整套单元测试的框架测试用例的管理(TestSuite)。测试代码的编写(TestCase)。测试的环境的建立(setUp、tearDown)。测试结果的判定(assert)。.在Android下能使用JUnit?Android提供了junit.framework包只测试一些和android无关的东西,如业务逻辑、数据封装、数值计算,可使用Junit。要将classpath选项里的android library改成jre,并且添加junit.jar。测试关于Android系统中的API,如Activi
2、ty界面、单击界面上的按钮、选择菜单等不能使用.测试Activity需要些什么?创立Activity并控制Activity的生命周期提供同步的能力,因为Activity的创立是异步的,当调用startActivty()后,这个函数立刻返回,而不是等待Activity创立 好后才返回.Android下TestCase的包结构SDK功能说明功能说明junit.frameworkJUnit测试框架junit.runner实用工具类支持JUnit测试框架android.testAndroid 对JUnit测试框架的扩展包android.test.mockAndroid的一些辅助类android.tes
3、t.suitebuilder实用工具类,支持类的测试运行包结构.Android下TestCase的类说明类类说明说明AndroidTestCase如果你要访问资源或其他东西依赖于Activity的环境,在这个类的基础上扩展。ActivityInstrumentationTestCase2这个类提供了一个单一的活动功能测试ApplicationTestCase提供了一个框架,可以在受控环境中测试Application类ProviderTestCase2提供了一个框架,可以在受控环境中测试ContentProvider类ServiceTestCase提供了一个框架,可以在受控环境中测试Servic
4、eTest类。.InstrumentationInstrumentation简介简介一种没有图形界面,具有启动能力,用于监控其他类的工具类执行application instrumentation代码的基类在任何应用程序运行前初始化可以监测系统与应用程序之间的交互在AndroidManifest.xml中的标签进行声明.InstrumentationInstrumentation的功能的功能添加、删除ActivityMoniter控制Application、Activity的创立与生命周期控制Instrumentation的运行发送按键、滚动球等事件消息到当前窗口同步某些操作(等待Activi
5、ty创立完毕、等待主线程空闲、等待某个操作执行完毕).使用instrumentation单元测试的实例编写需要测试的主体代码activity编写测试类修改manifest文件运行.编写需要测试的主体代码activitypackage com.android.ut;import android.app.activity;import android.os.bundle;public class androidut extends activity public void oncreate(bundle savedinstancestate)super.oncreate(savedinstance
6、state);setcontentview(r.layout.main);public int add(int a,int b)return a+b;.编写测试类package com.android.ut.test;import com.android.ut.androidut;import android.test.activityinstrumentationtestcase;public class testapp extends activityinstrumentationtestcase public testapp()super(com.android.ut,androidut
7、.class);public void testsum()assertequals(5,getactivity().add(2,3);.修改manifest文件 也可以将也可以将instrumentation定义成定义成一个单独的一个单独的apk.运行在Development的Instrumentation内运行命令行运行 adb shell am instrument w XXX测试一个包adb shell am instrument-w packageName/android.test.InstrumentationTestRunner测试一个TestSuiteadb shell am i
8、nstrument-e class packageName.MyTestSuite-w packageName/android.test.InstrumentationTestRunner测试一个TestCaseadb shell am instrument-e class packageName.MyTestCase-w packageName/android.test.InstrumentationTestRunner测试一个方法adb shell am instrument-e class packageName.MyTestCase#testMethod-w packageName/android.test.InstrumentationTestRunner.