Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> Android開發教程 >> 淺談軟件測試串的Android單元測試

淺談軟件測試串的Android單元測試

編輯:Android開發教程

如果想在android裡面做單元測試,有兩條基本的路子可行。

第一,就是java程序員最為熟悉和常用的JUnit, 但是由於目前android sdk (version 1.1)中只是提供了stubbed methods/classes,沒有具體的實現代碼,所以如果用JUnit的話,我們需要在運行單元測試時,一定要 用JDK來運行,利用java命令來啟動JUnit的某個Runner。如果是用Eclipse的話,可以在Run Configuration裡新建一個JUnit。但是一定要記得在Classpath選項卡裡將Bootstrap Entries中的Android Library改成JRE,並且添加junit.jar。具體的設置可以參考:http://developer.android.com/guide/appendix/faq/troubleshooting.html#addjunit。 而且,更為遺憾的是,這種方法運行的JUnit運行在JDK之上的,而不是android,所以,只能測試一些和android無關的東西,比如業務邏輯,數據封裝,數值計算等等。並不能測試android api。

第二,采用Instrumentation. Android單元測試的主入口是InstrumentationTestRunner。它相當於JUnit當中TestRunner的作用。你可以將Instrumentation理解為一種沒有圖形界面的,具有啟動能力的,用於監控其他類(用Target Package聲明)的工具類。任何想成為Instrumentation的類必須繼承android.app.Instrumentation。

下面通過一個實例來看一下如何通過Instrumentation來做單元測試。

Step 1.首先編寫需要測試的activity:

package com.android.ut;

import android.app.Activity;
import android.os.Bundle;

public class AndroidUT extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
}

public int add(int a, int b)
{
return a + b;
}
}

Step 2.

接下來編寫測試類,其中主要來測試add()方法。我們在當前代碼目錄下,在新建一個文件夾,命名為test,並在裡面新建了包com.android.ut.test。然後往裡面新增加一個class.具體如下:

package com.android.ut.test;

import com.android.ut.AndroidUT;

import android.test.ActivityInstrumentationTestCase;

public class TestApp extends ActivityInstrumentationTestCase<AndroidUT> {

public TestApp()
{
super("com.android.ut", AndroidUT.class);
}

public void testSum()
{
assertEquals(5, getActivity().add(2, 3));
}   
}

Step 3.最後一步就是要改一下Manifest文件。

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.android.ut"
android:versionCode="1"
android:versionName="1.0.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".AndroidUT"
android:label="@string/app_name">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<uses-library android:name="android.test.runner" />
</application>
<instrumentation android:targetPackage="com.android.ut" android:name="android.test.InstrumentationTestRunner" android:label="Test Unit Tests"></instrumentation>
</manifest>

需要注意的是,在這裡面我加上了:

<uses-library android:name="android.test.runner" />

以及:

<instrumentation android:targetPackage="com.android.ut" android:name="android.test.InstrumentationTestRunner" android:label="Test Unit Tests"></instrumentation>

Step 4.運行

首先通過模擬器運行一下AndroidUT,

然後在命令行終端中運行

adb shell am instrument -e class com.android.ut.test.TestApp -wcom.android.ut/android.test.InstrumentationTestRunner

這樣你就可以看到測試結果了。

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved