自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

深度剖析Android單元測試問題

移動開發(fā) Android
想要充分的掌握Android單元測試的部分功能,那么就要對Android單元測試的結(jié)構(gòu)、語句、變量、函數(shù)、預(yù)處理指令、輸入和輸出等內(nèi)容進行了解掌握。

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

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

  1. #  
  2. # An unexpected error has been detected by Java Runtime Environment:   
  3. #  
  4. # Internal Error (classFileParser.cpp:2924), pid=4900tid=4476   
  5. #Error: ShouldNotReachHere()   
  6. #   
  7. # Java VM: Java HotSpot(TM) Client VM (10.0-b19 mixed mode windows-x86)   
  8. # An error report file with more information is saved as:   
  9. # E:\Mydoc\EclipseWorkspace\TestAndroid\hs_err_pid4900.log   
  10. #   
  11. # If you would like to submit a bug report, please visit:   
  12. # http://java.sun.com/webapps/bugreport/crash.jsp   
  13. #  

之所以有那么多XXXTestCase主要是為了簡化工作。例如當你想對一個訪問數(shù)據(jù)庫的功能進行測試時,首先需要自己啟動并初始化數(shù)據(jù)庫。在這里是類似的,如果你想測試一個Activity。

首先要啟動它。而ActivityTestCase就會自動幫你做完這些事情。而ActivityUnitTestCase會更注重測試的獨立性,它會讓測試與Android單元測試的聯(lián)系降到最低。其余的類可以查看相關(guān)的Javadoc來按需挑選。要編寫測試,就是找到合適的XXXTestCase作為基類來繼承,并且編寫自己的測試方法。

很明顯的,最簡單的編寫測試的方法就是繼承Android單元測試寫一個自己的TestCase。然后為自己的一組TestCase寫一個Activity界面,由界面控制TestCase的啟動,運行和結(jié)果報告。

但是,你很快會發(fā)現(xiàn),為何要給測試寫一個界面呢?這太詭異了。這時就需要一種技術(shù),它可以利用命令行(Shell)來啟動一組測試,并且通過命令行的形式給出結(jié)果。這就是所謂的Instrumentation。

在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。

這樣,在啟動程序的時候就會先啟動一個Application,然后在此Application運行過程中根據(jù)情況加載相應(yīng)的Activity,而Activity是需要一個界面的。但是Instrumentation并不是這樣的。你可以將Instrumentation理解為一種沒有圖形界面的,具有啟動能力的,用于監(jiān)控其他類(用Target Package聲明)的工具類。任何想成為Instrumentation的類必須繼承

【編輯推薦】

  1. Android應(yīng)用程序組建原理深入剖析
  2. Android SMS短信服務(wù)相關(guān)概念簡述
  3. PythonAndroid數(shù)據(jù)庫相關(guān)代碼解讀
  4. PythonAndroid安裝卸載程序具體操作方法解析
  5. Android應(yīng)用程序的四個關(guān)鍵點
責任編輯:chenqingxiang 來源: NET130
相關(guān)推薦

2010-01-27 09:31:39

C++Test測試

2017-01-14 23:42:49

單元測試框架軟件測試

2016-10-20 12:34:08

android單元測試java

2010-01-28 15:54:19

Android單元測試

2011-07-27 17:02:12

Xcode iPhone 單元測試

2010-10-09 14:43:46

J2MEJUnit

2017-02-21 10:30:17

Android單元測試研究與實踐

2011-06-01 15:49:00

Android 測試

2017-01-14 23:26:17

單元測試JUnit測試

2017-01-16 12:12:29

單元測試JUnit

2020-08-18 08:10:02

單元測試Java

2010-03-03 17:43:12

Android系統(tǒng)

2017-03-23 16:02:10

Mock技術(shù)單元測試

2021-05-05 11:38:40

TestNGPowerMock單元測試

2023-07-26 08:58:45

Golang單元測試

2011-07-04 18:16:42

單元測試

2020-05-07 17:30:49

開發(fā)iOS技術(shù)

2011-05-16 16:52:09

單元測試徹底測試

2010-02-06 15:32:30

Android架構(gòu)

2010-02-05 18:00:18

Android源代碼
點贊
收藏

51CTO技術(shù)棧公眾號