編輯:高級開發
[
許多人在接觸到android單元測試時,第一反應是android單元測試是不是已經完整集成了JUnit。很遺憾這不是事實。如果你按照JUnit的運行方法,卻不像上面那樣改用JDK,就一定會得到一個異常。
實際上,TestCase這個類用於在android擔當所有獨特的TestCase的基類的作用,它是一個Abstract Class。android單元測試類繼承關系圖如下所示:
- #
- # 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:\Mydoc\EclipseWorkspace\Testandroid\hs_err_pid4900.log
- #
- # If you would like to submit a bug report, please visit:
- # http://Java.sun.com/webaPPS/bugreport/crash.JSP
- #
之所以有那麼多XXXTestCase主要是為了簡化工作。例如當你想對一個訪問數據庫的功能進行測試時,首先需要自己啟動並初始化數據庫。在這裡是類似的,如果你想測試一個Activity。
首先要啟動它。而ActivityTestCase就會自動幫你做完這些事情。而ActivityUnitTestCase會更注重測試的獨立性,它會讓測試與android單元測試的聯系降到最低。其余的類可以查看相關的Javadoc來按需挑選。要編寫測試,就是找到合適的XXXTestCase作為基類來繼承,並且編寫自己的測試方法。
很明顯的,最簡單的編寫測試的方法就是繼承android單元測試寫一個自己的TestCase。然後為自己的一組TestCase寫一個Activity界面,由界面控制TestCase的啟動,運行和結果報告。
但是,你很快會發現,為何要給測試寫一個界面呢?這太詭異了。這時就需要一種技術,它可以利用命令行(Shell)來啟動一組測試,並且通過命令行的形式給出結果。這就是所謂的Instrumentation。
在Java下做單元測試必然用到JUnit。這裡說的JUnit是指從apache基金會下載的junit.jar裡提供的一系列單元測試功能。這些功能顯然是運行在JDK之上的。在android下已經沒有了JDK。
自然也無法運行JUnit。但是這並不妨礙我們利用JUnit編寫單元測試。只不過在運行單元測試時,一定要用JDK來運行,利用Java命令來啟動JUnit的某個Runner。如果是用Eclipse的話,可以在Run Configuration裡新建一個JUnit。但是一定要記得在Classpath選項卡裡將Bootstrap EntrIEs中的android Library改成JRE,並且添加junit.jar。
這樣,在啟動程序的時候就會先啟動一個Application,然後在此Application運行過程中根據情況加載相應的Activity,而Activity是需要一個界面的。但是Instrumentation並不是這樣的。你可以將Instrumentation理解為一種沒有圖形界面的,具有啟動能力的,用於監控其他類(用Target Package聲明)的工具類。任何想成為Instrumentation的類必須繼承
Google已經發布了android SDK 2.3版本,大家應該都在等android 2.3的升級吧?在51CTO獨家公布了android SDK 2.3下載地址後.
如果你曾經是一名WEB前台設計師,如果你曾經有過設計的功底,那麼你很榮幸,如果你切到android平台中,以前的知識和經驗都能很好的移植到android平台中。本人以為
Google推出的android應用手機通過與運營商、設備制造商、開發商和其他有關各方結成深層次的合作伙伴關系,但同顯而易見的,是手機具有便攜性,24小時隨身相伴性和及
最近,Google面向大學生推出android開發挑戰賽,android開發成為時下開發者的熱點開發項目。像《在NetBeans上搭建android SDK環境》這樣的