沒用JUnit好像少了什麼似的,就順便研究了一下在Android下如何使用JUnit
----------------
在Android裡面基本上有兩個方案
傳統JUnit
有需要的話可以到http://www.junit.org/ 下載
因為Android用的不是JDK在跑程式,而是用他自己的虛擬機器
所以在eclipse必須修改一下JUnit的執行環境才能跑,而且也只能跑一些java的邏輯測試或業務封裝,對於Andorid的測試不能用一般的JUnit去跑,這個可以用第二個方案解決
先介紹第一種一般JUnit的使用法,把junit-4.6.jar(版本可能有異)下載下來後
先在eclipse的 project->properties 跳出設定視窗後選擇Java Build Path->Libraries
選擇Add External JARs,把剛才下載的junit-4.6.jar加入eclipse
這個方法可用於想加入任何第三方API時使用
之後File->New->JUnit Test Case新增一個TestCase
假設程式碼如下
public class TestActor extends TestCase{
public TestActor(String name){
super(name);
}
public void testAction(){
assertEquals(true, true);//請修改為自己的測試程式
}
}
----
之後開啟Run Configutrations(不知道請參照使用eclipse開發Andrio 1.5)
開啟視窗後請先依序幾個步驟
- 先在左邊的JUnit那欄點兩下,會出現右邊這種設定卡,先選Test這個Tag
- 再來取個喜歡的名子
- 這個步驟比較重要,選定要執行的測試類別
- 選定Junit版本
- 點選Apply
請點選Android 1.5 後按下 Advanced 將他改成JRE
他會先跳出一個Advanced Options的選單,選則Add Classpath Variables後按下OK
他會又跳出一個選單,選擇你的JRE環境後按下OK,在此我的是JRE_LIB
最後在Bootstrap Entries上就會出現JRE的環境,這邊要注意一下User Entries有沒有Junit
沒有的話用Add External JARs將他加進來,之後按下Apply
之後再要測試的Testcast calss上按右鍵 Run As->JUnit Test就可以跑了
如果出現詢問視窗的話,先在Override workspace setting上打勾
而後選擇Eclipse JUnit Launcher按下OK就行了
注意一下Run的選單
這是1.5後才出現的,以後或許會再改也不一定,畢竟Android現在比起J2ME等仍然是不夠完善
Android JUnit Test
這是第二個方案,專門給Android專案作測試用的,Android的APIDemo裡面就有很詳盡的用法
註:1.5版後的ApiDemo範例改放到
android-sdk-windows-1.5_r1\platforms\android-1.5\samples目錄底下
-----
Android JUnit Test用法一樣是到Run Configutrations下產生一個新的JUnit的Config出來
不同的是程式寫法
首先一定要有繼承Activity的類別
public class Game extends Activity {
.....
}
然後寫測試程式,他必須繼承ActivityInstrumentationTestCase,而且泛型樣版必須放進一個繼承 Activity的類別
public class Test extends ActivityInstrumentationTestCase<Game> {
public Test(){
super("com.android.ut", Game.class);
}
public void testRun()
{
assertEquals(true, true);
}
}
這裡有一點要注意
super("com.android.ut", Game.class);
super第一個參數一定要是你專案的package名稱,不然跑出來結果會錯誤,在此我是隨便舉的例
之後我產生一個JUnit的Config,用預設的就好
再來最重要的是修改AndroidManifest.xml設定檔
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="org.cusano.star"
android:versionCode="1"
android:versionName="1.0">
<application android:icon="@drawable/icon" android:label="@string/app_name">
<activity android:name=".Game"
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:name="android.test.InstrumentationTestRunner"
android:targetPackage="org.cusano.star"
android:label="Tests "/>
<uses-sdk android:minSdkVersion="3" />
</manifest>
-----------
用顏色標住起來的地方就是我們要加進去的東西
<uses-library android:name="android.test.runner" />
是跟Android說要引進這個lib,不然Android不知道<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="org.cusano.star"
android:label="Tests "/>
有三個屬性,第一個屬性是固定的,targetPackage屬性要填專案當初設定的package名稱
label屬性則是在Android會看到的標籤
再來就可以選擇第一個Android JUnit Test去Run了
在此之前,可以叫出Logcat去觀察他的結果,Logcat是Android很好用的工具,可以幫忙觀察很多錯誤,叫出方法,Window -> Show View -> Other,找Android -> LogCat
在跑Android JUnit Test他會去叫出模擬器(avd記得先設定好),之後可以去Dev Tools下的Instrumentation,找到我們的測試程式,名子是AndroidManifest.xml當初設定label屬性,也就是Tests
按下去後就可以在Eclipse或是Logcat上面看結果
沒有留言:
張貼留言