测试是开发很重要的一部分。有句话说,好的应用不是开发出来的,而是测出来的。虽然作为程序员我们并不需要很精通测试,但是我们还是需要了解一下测试的基本内容。
安卓中提供了一个测试框架给我们使用。我们只需要继承这个框架就可以进行单元测试。
准备工作
新建一个安卓项目,在新建两个类,一个用于做测试框架类,一个用于演示的工具类。
演示工具类没什么,只是为了演示而已。
这里我们重点说一下测试框架类。
环境搭建:
安卓中搭建测试框架类非常简单,只需要新建一个类,然后继承AndroidTestCase类就可以了。然后再清单文件中加入指令集和测试类库(这个我们看代码就可以了。)
运行方法:
所谓单元测试,就是要测试某一个方法你不用运行整个程序,只需要选择该方法,邮件 Run as Android Junit Test就可以运行。如果运行没问题,Junit框会显示绿色。如果有Bug,就会显示红色。
如图:
下面我们看看代码吧
首先清单文件
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.junit"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="14"
android:targetSdkVersion="21" />
<!--
添加单元测试框架必须添加instrumentation这个指令集
这条属性表明用那个指令集,事实上也只有一个
android:name="android.test.InstrumentationTestRunner"
这条表明要测试那个包下的功能,注意,一个测试框架定义在哪里是没关系的,
测试哪里,靠的是下面的包定义,注意,下面还需要添加类库哦
android:targetPackage="com.example.junit"
-->
<instrumentation
android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.example.junit" >
</instrumentation>
<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" >
</uses-library>
<activity
android:name=".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>
JAVA文件
package com.example.junit;
/*
* AndroidTestCase是用于做安卓单元测试的类。
* 所有单元测试,就是可以不用运行整个程序,单独去测试某个方法。
* 安卓通过继承AndroidTestCase就可以实现这个功能。
* 通过右键某个方法,run as Android Junit Test就可以运行
*
* 注意,运行测试框架要在清单文件里面添加指令集和指定所使用的类库
*
* */
import android.test.AndroidTestCase;
public class MyTestCase extends AndroidTestCase{
public void test(){
Test.add(2, 6);
//assertEquals()断言,第一个参数表示期望值,第二个参数表运算值
assertEquals(7, 8);
}
}
被测试类
package com.example.junit;
public class Test {
public static int add(int a,int b){
return a+b;
}
}