Android 7.0源码环境单元测试

Android 7.0源码环境单元测试,第1张

概述“单元测试”测试模块内部方法或类。“集成测试”测试模块间的调用。Android官方测试文档:https://developer.android.comrainingesting/index.htmlAndroidstudio测试文档:https://developer.android.com/studioestAndroid单元测试内容:有复杂逻辑的类:1、算法类

“单元测试”测试模块内部方法或类。“集成测试”测试模块间的调用。
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源码环境单元测试所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1102841.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存