记得上期同城会的时候有个哥们说android是不是不支持单元测试呢?怎么我们项目组怎么整都报错呢?然后当时随便回答了一下,这个肯定支持的,估计是你们清单文件没配置吧,下来把文件发我看下,一直以为这比较简单的东西就不想写,结果刚才还有个哥们也问同样的问题,那么还是简单写一下吧,这个确实太基础的玩意了,以后还有问的就自己来看得了,^_^。
一、配置单元测试的环境
打开自己项目中的AndroidManifest.xml配置文件,把单元测试需要的测试库和测试框架配置好,
在application节点内,与四大组件平级(之前有个同事说在某本中文android书籍上看到,说这个单元测试库必须配置在四大组件之前,应该是前后都是可以的),如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<!-- 单元测试库 -->
<uses-library android:name="android.test.runner"/>
<activity
android:name=".MainActivity"
android:label="@string/title_activity_main" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
|
接下来配置instrumentation
instrumentation与application是平级的,具体如下:
其中android:name为:android.test.InstrumentationTestRunner
android:targetPackage为:AndroidManifest.xml下的package内容,即应用程序包名。
二、创建测试类
1、单元测试类需要继承android.test.AndroidTestCase这个类
2、单元测试方法需要声明为public类型
3、按照Junit3的规范,一般单元测试方法命名都是以test开头,然后跟着业务方法名,一般单元测试方法的返回值类型为void类型。
如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
import android.test.AndroidTestCase;
import android.util.Log;
public class FileUtilsTest extends AndroidTestCase {
private static final String TAG = "FileUtilsTest";
private FileUtils fileUtils;
@Override
protected void setUp() throws Exception {
fileUtils = new FileUtils(this.getContext());
}
@Override
protected void tearDown() throws Exception {
super.tearDown();
}
public void testReadFile()throws Throwable{
byte[] data = fileUtils.readFile("myclover_demos.txt");
Log.i(TAG, new String(data));
}
}
原文地址: http://my.eoe.cn/myclover/archive/3033.html
|