“单元测试”测试模块内部方法或类。“集成测试”测试模块间的调用。
AndroID官方测试文档:https://developer.androID.com/training/testing/index.HTML
AndroID studio 测试文档:https://developer.androID.com/studio/test
AndroID单元测试内容:
有复杂逻辑的类:
1、算法类。如字符串转数字、时间转换等。
2、协议类,各种通讯协议。网络、串口等。在后台或外部协议模块未完成前根据协议,编写桩模块进行测试。
3、UI控制类,依赖用户 *** 作和外部数据来显示不同的UI状态。通常需要模拟用户输入数据和外部数据桩模块。(参考/package/app/TV/tests)
1.JUnit
2.Mock
1、不依赖androID环境的单元测试对于系统代码依赖较强的代码无法测试,因为JUnit需要在IDE环境运行,运行之前需要保证代码编译无报错。对于此类型测试,可以直接使用instrumentation代替。
2、对于依赖androID 环境的测试则可以使用adb instrumentation command或IDE测试。
命令行测试见:
https://developer.androID.com/studio/test/command-line
AndroID仪器测试:
Instrumentation Test:
环境:Android7.0
1、建立测试类
package your.package.name.util;import androID.test.AndroIDTestCase;import androID.util.Log;/*继承AndroIDTestCase,并实现setUp()和tearDown()方法*/public class UtilTest extends AndroIDTestCase{ private final String TAG = "UtilTest"; /** * Called before run() is called. * 可以做测试前的初始化动作。 * 注:每个测试方法运行前都会前执行SetUp(),测试方法执行完后,又会执行tearDown() */ @OverrIDe public voID setUp() throws Exception { super.setUp(); Log.d(TAG,"setUp:"); } /*被测试方法名要以test开头*/ public voID testCase1() throws Exception { Log.d(TAG, "testCase1:"); assertEquals(0,0); } public voID testCase2() throws Exception { Log.d(TAG, "testCase1:"); assertEquals(0,0); } /** * Called after run() is called, even if run() threw an exception, but * not if setUp() threw an execption. */ @OverrIDe public voID tearDown() throws Exception { super.tearDown(); Log.d(TAG,"tearDown"); }}
2、编写AndroIDManifest.xml
<manifest xmlns:androID="http://schemas.androID.com/apk/res/androID"package="com.hisilicon.tvsetting.tests" > <uses-sdk androID:targetSdkVersion="23" androID:minSdkVersion="21" /> <instrumentation androID:name="androID.support.test.runner.AndroIDJUnitRunner" androID:label="HiTvSetting Unit Tests" androID:targetPackage="your.package.name" /> <application androID:label="HiTvSettingTest" > <uses-library androID:name="androID.test.runner" /> </application></manifest>
添加instrumentation标签,targetPackage指定被测试包名。
添加库依赖
3、编写AndroID.mk
LOCAL_PATH:= $(call my-dir)include $(CLEAR_VARS)LOCAL_MODulE_Tags := tests# Include all test java files.LOCAL_SRC_fileS := $(call all-java-files-under, src)# 添加测试库依赖LOCAL_STATIC_JAVA_liBRARIES := \androID-support-test# 签名要与被测试应用一致,这里以系统签名为例。LOCAL_CERTIFICATE := platformLOCAL_PACKAGE_name := YourAppTests# 被测试应用名称LOCAL_INSTRUMENTATION_FOR := YourAppLOCAL_SDK_VERSION := currentLOCAL_MIN_SDK_VERSION := 23 # Minclude $(BUILD_PACKAGE)
4、运行测试方法
使用 adb shell am instrument 命令,使用方法见https://developer.androID.com/studio/test/command-line
运行全部测试方法:
adb shell am instrument -w your.package.name.tests/androID.support.test.runner.AndroIDJUnitRunner
运行指定类,以UtilTest类为例:
adb shell am instrument -w -e class 'your.package.name.tests.UtilTest' your.package.name.tests/androID.support.test.runner.AndroIDJUnitRunner
运行执行类指定方法,以UtilTest类testCase1()为例:
adb shell am instrument -w -e class 'your.package.name.tests.UtilTest#testCase1' your.package.name.tests/androID.support.test.runner.AndroIDJUnitRunner
命令说明:
-w 表示等待测试运行完成,参数:<测试软件包名>/<插桩测试类名,通常是AndroIDJUnitRunner>
-e 表示添加参数,如指定class
以上是内存溢出为你收集整理的Android 7.0源码环境单元测试全部内容,希望文章能够帮你解决Android 7.0源码环境单元测试所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)