对于android开发,有时候会遇到单独对某个接口进行测试,如果每一次都要写一个activity工程去测试,就显得太麻烦,如果不需要activity,单独对某个接口进行测试。
具体方法如下:
1.建立一个测试类,该类继承AndroidTestCase(new--android Junit test case,输入类名称,包名,选择brower继承的父类为AndroidTestCase)
package com.example.test;
import android.test.AndroidTestCase;
public class uinitest extends AndroidTestCase {
public void testunit() throws Throwable
{
service.PrintfLog("Hi,This unit test 1");
service obj=new service();
obj.printfLog2("Hi,This is unit test 2");
};
}
2,创建一个服务类(new--Class, 输入包名,类名,如有继承,选择继承的父类)。
package com.example.test;
import android.util.Log;
public class service {
private final static String tag="Mytag";
static void PrintfLog(String log)
{
Log.i(tag,log);
}
public void printfLog2(String log)
{
Log.i(tag,log);
}
}
3.修改清单文件,注册test类
<instrumentation android:name="android.test.InstrumentationTestRunner" android:targetPackage="com.example.test" android:label="Test" />
<uses-library android:name="android.test.runner" />
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.test"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="8"
android:targetSdkVersion="19" />
<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.example.test.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>
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.example.test" android:label="Test" />
</manifest>
4.执行单元测试
选择接口方法---右键菜单----debug as----android Junit test
测试结果统计,如果出错,进度条为红色,且有错误统计,否则为绿色
logCat打印为: