Android使用JUnit进行单元测试
来源:互联网 发布:天刀捏脸数据导出 编辑:程序博客网 时间:2024/05/20 18:36
前言:为什么要进行单元测试?单元测试能快速是开发者,找到代码中的问题所在,因为是单元测试,所以代码只执行响应的测试单元,执行快解决问题的效率高,同时提高代码的质量。
Android中的单元测试可简单分为两步:
1.Manifast中注册:要注册三个部分。
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.xhm.testandroid" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="8" android:targetSdkVersion="17" /> <!-- 单元测试的权限 --> <uses-permission android:name="android.permission.RUN_INSTRUMENTATION" /> <!-- 单元测试的工具基类,测试类需要,其中的name和targetPackage是必须的,其他标签可选。targetPackage名要和package名相同,否者会报异常 --> <instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.xhm.testandroid" /> <application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <!-- 单元测试的工具包 --> <uses-library android:name="android.test.runner" /> <activity android:name="com.xhm.testandroid.MainActivity" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
2.测试工具类编写:
package com.xhm.testandroid;import android.test.ActivityInstrumentationTestCase2;/** * 测试工具类编写 其中的MainActivity为要测试的类。 * 当选择Run As---->Android JUnit Test时,就是自动寻找这个类, * 并一次调用测试方法,然后弹出JUnit界面 * @author Administrator * */public class BaseTest extends ActivityInstrumentationTestCase2<MainActivity> { // 这个构造方法适用于SDK版本低的。super中参数1:被测试类的包名;super中参数2:被测试类的名字 public BaseTest() { super("com.xhm.testandroid", MainActivity.class); } // 这个构造方法适用于SDK版本高的。 public BaseTest(Class<MainActivity> activityClass) { super(activityClass); } // 测试方法随意取名,但必须为public,测试的时候建立的方法都会调用 public void testNull() { // 获得MainActivity,这样就能调用其中的方法了 getActivity(); } public void testTest() { assertEquals("Helloworld!", getActivity().testjia(1, 3).getText()); }}
3.程序测试截图:
测试程序截图:
测试结果截图:
其中的表示测试成功,即返回的结果和预想的一致。
其中的表示测试失败,即返回的结果和预想的不同。
4.注意:
1)也许有人会问为什么运行测试的时候会自动去执行BaseTest这个方法,首先是因为他继承了ActivityInstrumentationTestCase2这个类,而在注册instrumentation时就是关键,你可以将Instrumentation理解为一种没有图形界面的,具有启动能力的,用于监控其他类(用Target Package声明)的工具类。
2)在注册targetPackage时,一定要和项目的package一致,否则会出现问题,然后将测试类建立在targetPackage所指向的包路径下。
3)在写测试工具类的时候,写了两个构造方法,因为发现在android低版本的SDK中,只有一个参数的构造方法不会调用,所以写了两个。
5.常用方法:
AndroidTestCase.getContext()://此函数的功能为得到Android系统的上下文对象,通过它可以取得contentResolver等对象。ActivityInstrumentationTestCase.getActivity()//此函数的功能为得到被测Activity对象assertTrue(String message,boolean condition)//声明状态是TrueassertFalse(String message,boolean condition)//声明状态是FalseassertEquals(String message,T expected,T expected)//声明两个对象相等assertNotNull(String message,Object object)//声明对象不为空assertNull(String message,Object object)//声明对象为空fall(String message)//测试失败并附带一条消息
所有的方法位于:junit.framework.Assert中,地址http://developer.android.com/reference/junit/framework/Assert.html。
0 0
- Android 使用 Junit进行单元测试
- android使用junit进行单元测试
- Android使用JUnit进行单元测试
- 使用Junit对Android应用进行单元测试
- 使用Junit对Android应用进行单元测试
- 使用Junit对Android应用进行单元测试
- Android中如何使用JUnit进行单元测试
- Android中如何使用JUnit进行单元测试
- Android:使用junit对应用进行单元测试
- 使用Junit对Android应用进行单元测试
- Android中如何使用JUnit进行单元测试
- 使用Junit对Android应用进行单元测试
- Android中如何使用JUnit进行单元测试
- 使用JUnit 进行单元测试
- 使用Junit进行单元测试
- 使用Junit进行单元测试
- Android 使用Junit单元测试
- Android-使用Junit单元测试
- Android中打包JAR时获取资源ID的方法
- Android分享图片失败解决方案
- log(五)——MDC总结
- Python 黑帽编程大纲(变化中)
- 为什么启动代码必须用汇编
- Android使用JUnit进行单元测试
- getMeasuredHeight(),getScrollY(),getHeight()的区别和联系
- GoogleMap-------API KEY申请流程
- GoogleMap-------Google Play services SDK的下载和配置
- GoogleMap-------manifest文件配置
- Java 打印各种直角三角形和乘法表
- GoogleMap-------解决不能使用问题
- linux使用crontab实现PHP执行定时任务
- c#自定义集合类