1、Android单元测试的编写 Android单元测试有两种方法,首先作为java程序,可以试用JUnit Test进行测试,另外也可使用Android JUnit Test进行单元测试。 1)、JUnit Test进行单元测试 JUnit对Android应用程序进行单元测试需要使用Java命令来启动或者在eclipse里面将启动的Bootstrap Entries改为JRE,但是这种只能测试逻辑代码,因为是是运行在JVM上,而不是Android系统中,所以不能测试Android有关的代码。 使用JUnit测试的代码,需要在函数的之前加@Test,函数必须为public类型,在eclipse中,在类上右击,选择JUnit Test即可进行测试。 2)AndroidJUnit Test进行单元测试 Android JUnit Test单元测试是一组直接或间接继承自junit.framework.Testcase的类集合,入口是InstrumentationTestRunner。 使用Android JUnit Test测试,也存在两种测试方法,测试驱动与测试代码在同一工程下和测试驱动和测试代码位于不同工程,两者之间并无巨大差异,只是在测试时,前者只安装一个App,后者安装两个App。 如下为一个单元测试的实例: 步骤 1:准备好需要测试的源代码 步骤2:添加测试类,编写测试代码
步骤3:修改AndroidManifest.xml文件
注意:绿色背景为添加部分。其中android:label="Testsfor TTcalculator."在模拟器中的Dev Tools工具中,设置Instrumentation下显示的名称,在步骤4运行中,点击该标签,也可运行单元测试。在TTAndroid JUnit Test中也是重要一步,可以设置多个单元,多个名称,每个名称尽量不要重复,以区分不同的单元测试。
步骤4:运行测试类 运行测试类有三种方式,包括: 1、 命令行方式 使用adb命令启动单元测试 2、 eclipse中选择Android JUnit Test运行方式 在eclipse中,右击测试工程,选择run as -> Android JUnit Test 3、 模拟器中,使用Dev Tools 在模拟器中安装该程序后,在Dev Tools工具中,选择Instrumentation下显示的与android:label同名的标签运行单元测试。
2、TT单元测试的编写 要使用TT进行单元测试类的编写,需要将所有的测试类写到一个单独的文件夹下,在进行编译工程时,使用参数-filter将其从编译路径中排除,不对其进行插桩。如下图所示: 被测源码放在src文件夹中,单元测试驱动代码放在test_src文件下。 其他方面,需要在Android单元测试上进行的修改为: 1、引入TT Android jar包,JavaParser-Android.jar和通信包jeromq-0.3.0-SNAPSHOT.jar。 2、将继承Android JUnit Test类换成继承TT Android JUnit Test类,TT Android JUnit Test类中与Android JUnit Test相对应的类为在类名前加TT。例如与InstrumentationTestCase相对应的类为TTInstrumentationTestCase,TT Android JUnit Test类所在的包为com.zoa.android.test。 3、在重载了setUp和tearDown函数的测试类中,需要分别调用super.setUp()和super.tearDown()函数,否则无法对数据进行惊醒测试用例的区分,如果没无需进行初始化和资源释放则不用继承setUp()和tearDown()函数。 4、其他操作同Android JUnitTest操作相同。 如下为一个与上面Android JUnit Test单元测试类相对应的TT Android JUnit Test单元测试类,添加背景色的为需要注意的点,其他的与原测试代码相同,无需改动:
编写完成TT Android JUnit Test 测试类之后,使用TT对工程进行编译。
3、TT单元测试的编译 1、修改编译文件,如果是单一编码格式的工程,需要修改%TT_Path%/ant-build-a/android-instru_en.xml文件,多种编码格式源码的工程,则需要修改%TT_Path%/ant-build-a/android-instru_code_en.xml文件。修改内容为,添加-filter参数,修改方法为: 添加filterpath属性,用于过滤不需要插桩的单元测试驱动类文件。 <property location="不需要插桩编译的路径,这里为test_src路径" name="filterpath"/> … <argline=""${propath}" "${TT}"-tt="${testpropath}" -encoding=${encoding}-filter="${filterpath}"-s="${testpropath}/src""/> 在运行JavaParser处,添加绿色背景参数。 注:demo版本中需手动修改,后续版本将对此进行改进。 2、打开TT,创建一个新的工程,与非单元测试工程的编译相同。详见:http://www.threadingtest.com/xwiki/bin/view/ZOA%7C4.演示/Android+程序测试配置
4、TT单元测试的运行 在真机中测试时,需要安装Dev Tools工具。模拟器中附带该工具。 将上一步中,TT编译生成的APK文件,安装到模拟器或真机中,安装之后,会在Dev Tools工具下,Instrumentation中会出现与AndroidManifest.xml文件中android:label设置的同名的标签,点击可运行TT单元测试。 在运行TT单元测试时,需要打开TT接收数据,否则测试会阻塞在消息发送处而无法进行。
|