Android日誌輸出、單元測試

Android日誌輸出單元測試

  由於這幾天睡得晚,導致第二天都沒有精神,還暈暈的聽課,效率低,我不能熬夜了。下面我來講講今天學習的知識點吧。

一、 單元測試

  有了測試以後我們遇到bug的時候就好解決了。

單元測試需要以下幾步:

1.  首先要在AndroidManifest.xml中加入如下代碼:

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

  這行代碼必須只能放在<application></ application>元素之內,與<activity></activity>平級。

  <instrumentation android:name=”android.test.InstrumentationTestRunner”

  Android:targetPackage=”cn.class3g.action”android:label=”Tests for My App”>

  這行代碼放在<manifest></manifest>之中。這裏的targetPackage指定的包和應用的package相同。如果不相同,就會出現找不到單元測試用例的錯誤。

2. 編寫單元測試代碼  測試類必須繼承自AndroidTestCase類。

  3. 執行測試

 讓我們來看一個具體的測試項目的實現吧:

  1.  創建項目:

  創建名爲JunitTest的項目

  2.在功能清單文件中配置單元測試環境;

  打開功能清單文件,添加上面所述的代碼,最終代碼如下;

<?xml version="1.0" encoding="utf-8"?>

<manifest xmlns:android="http://schemas.android.com/apk/res/android"

package="cn.class3g"

android:versionCode="1"

android:versionName="1.0" >

<uses-sdkandroid:minSdkVersionuses-sdkandroid:minSdkVersion="10" />

<application

android:icon="@drawable/ic_launcher"

android:label="@string/app_name" >

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

<activity

android:label="@string/app_name"

android:name=".JunitHaoActivity" >

<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="cn.class3g" android:label="Tests/>

</manifest>

新建測試用例

  首先在項目位置,右擊新建一個UserTests類,在創建這個類的時候要繼承AndroidTestCase類;

  注意:如果測試方法內部遇到異常,建議直接拋出,而不要捕獲異常。異常拋出後會被測試框架獲取,之後在控制檯顯示出來,方便我們瞭解異常信息。

  集體的類文件如下:

package cn.class3g;

packagecom.sharpandroid.unitandlog;

import junit.framework.Assert;

import android.test.AndroidTestCase;

import android.util.Log;

public classUserTest extends AndroidTestCase{

private static final StringTAG = "MyTest";

public void testSave()throws Throwable{

int i= 4+8;

Assert.assertEquals(5,i);

}

}

  Assert類在此的作用是判斷所得到的結果與期望值的關係。這裏判斷i是否等於5。如果相等則通過,不相等,則拋出異常。

  運行測試用例

  首先要進入大綱視圖(outline),如果默認的界面中沒有的話,可以通過以下步驟:

  window-----showView----outline   就可以了!

  在大綱視圖中找到自己的測試類,然後展開,找到集體的方法,然後選定右擊,選擇Run as----Android Junit Test 就可以了;

  觀看結果條,如果是紅色說明沒有通過,代碼有問題,如果是綠色就說明測試通過了。

二、日誌輸出

  我們在開發Android應用時,控制檯不會打印出字符串,該字符串會在LogCat中打印出來。在程序中進行信息輸出,一般採用android.util.Log類的靜態方法就可以實現。Log類所輸出的日誌的內容從少到多分別是ERROR,WARN,INFO,DEBUG,VERBOSE,對應五種不同類型的首字母,分別對應有Log.e( )Log.w( )Log.i()Log.d( )Log.v( )五種靜態方法。

  讓我們來編寫一個日誌輸出的測試類吧

package cn.class3g;

import junit.framework.Assert;

import android.test.AndroidTestCase;

import android.util.Log;

public class UserTest extendsAndroidTestCase{

private static final StringTAG = "tag";

public void testSave()throws Throwable{

int i= 4+8;

Log.i(TAG, "i = " + i);

Assert.assertEquals(5,i);

}

}

  說明:

Log.i(String tag,String msg);

  tag:爲這條信息定義一個標籤,在開發時通常採用其所在類的類名,這樣方便我們追蹤輸出的信息。也方便我們在看到信息時知道其由哪個類輸出。

msg:該參數爲希望輸出的信息的內容。 一般將第一個參數定義成一個靜態常量

本文轉自:http://www.spasvo.com/news/html/201515132928.html

 

發佈了28 篇原創文章 · 獲贊 2 · 訪問量 8萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章