您的位置:軟件測試 > 開源軟件測試 > 開源單元測試工具 > junit
Android 下junit 單元測試
作者:網(wǎng)絡(luò)轉(zhuǎn)載 發(fā)布時間:[ 2014/1/14 14:47:00 ] 推薦標(biāo)簽:單元測試 junit Android

在 Java下做單元測試必然用到JUnit。這里說的JUnit是指從Apache基金會下載的junit.jar里提供的一系列單元測試功能。這些功能顯 然是運行在JDK之上的。在Android下已經(jīng)沒有了JDK,自然也無法運行JUnit。但是這并不妨礙我們利用JUnit編寫單元測試。只不過在運行 單元測試時,一定要用JDK來運行,利用java命令來啟動JUnit的某個Runner。如果是用Eclipse的話,可以在Run Configuration里新建一個JUnit。但是一定要記得在Classpath選項卡里將Bootstrap Entries中的Android Library改成JRE,并且添加junit.jar。

  很明顯的,這種測試是正規(guī)的Java單元測試,和Android沒有任何關(guān)系。你無法測試任何關(guān)于Android系統(tǒng)中的API,你寫的Activity,人機界面等等。所以,如果你想測試僅僅是一些封裝數(shù)據(jù)的對象,或者是純粹的數(shù)值計算,還是可以用這種方法的。

  Android里面的junit.framework包是怎么回事?

  很多人看到這個包的時候,第一反應(yīng)是Android是不是已經(jīng)完整集成了JUnit。很遺憾這不是事實。如果你按照JUnit的運行方法,卻不像上面那樣改用JDK,一定會得到一個異常:

  #

  # An unexpected error has been detected by Java Runtime Environment:

  #

  # Internal Error (classFileParser.cpp:2924), pid=4900, tid=4476

  #Error: ShouldNotReachHere()

  #

  # Java VM: Java HotSpot(TM) Client VM (10.0-b19 mixed mode windows-x86)

  # An error report file with more information is saved as:

  # E:MydocEclipseWorkspaceTestAndroidhs_err_pid4900.log

  #

  # If you would like to submit a bug report, please visit:

  #http://java.sun.com/webapps/bugreport/crash.jsp

  #

  實際上,TestCase這個類用于在Android擔(dān)當(dāng)所有獨特的TestCase的基類的作用,它是一個Abstract Class。Android單元測試類繼承關(guān)系圖如下所示:

 

  之所以有那么多XXXTestCase主要是為了簡化工作。例如當(dāng)你想對一個訪問數(shù)據(jù)庫的功能進行測試時,首先需要自己啟動并初始化數(shù)據(jù)庫。在這里是 類似的,如果你想測試一個Activity,首先要啟動它。而ActivityTestCase會自動幫你做完這些事情。而 ActivityUnitTestCase會更注重測試的獨立性,它會讓測試與Android底層的聯(lián)系降到低。其余的類可以查看相關(guān)的Javadoc 來按需挑選。要編寫測試,是找到合適的XXXTestCase作為基類來繼承,并且編寫自己的測試方法。

  很明顯的,簡單的編寫測試的方法是繼承AndroidTestCase寫一個自己的TestCase。然后為自己的一組TestCase寫一個Activity界面,由界面控制 TestCase的啟動,運行和結(jié)果報告。但是,你很快會發(fā)現(xiàn),為何要給測試寫一個界面呢?這太詭異了。這時需要一種技術(shù),它可以利用命令行(Shell)來啟動一組測試,并且通過命令行的形式給出結(jié)果。這是所謂的Instrumentation。

wordend 相關(guān)閱讀:

    MOTODEV初體驗,高效Android開發(fā)工具
    詳解如何實現(xiàn)一個基本的Android用戶界面
    Android應(yīng)用開發(fā)實戰(zhàn):GPS與加速度傳感器

上一頁12345下一頁
軟件測試工具 | 聯(lián)系我們 | 投訴建議 | 誠聘英才 | 申請使用列表 | 網(wǎng)站地圖
滬ICP備07036474 2003-2017 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd