在Android1.5應用程序開發過程中使用JUnit
這幾天忙著寫一個Android App(等完成以后應該會open source),今天差不多把網絡相關的部分實現了,XML解析還有待完善。幾天沒寫blog感覺有點不自在,正好想起Android 1.5_r1的release notes中專門提到了ADT0.9對于JUnit支持的改進,對于崇尚TDD(測試驅動開發)的人來說這無疑是一個好消息,今天就抽點時間說說Android 1.5中JUnit集成相關的要點吧。
配置完1.5的SDKADT0.9,運行第一個1.5的sample的時候我就看到Run as中多出了一個 “Android JUnit Test”的選項(以前是在Debug中)。
可是文檔里并沒有提到如何在Android project中集成JUnit測試,好在我從Android Developers討論組里找到了TDD with Android 1.5這么一個帖子。
就先來看一看如何把Sample中的test case跑起來吧。
(多謝Zhao的blog上關于在Android 1.5 pre中運行APIDemo測試的總結)
第1步,新建一個Android項目,選擇“create project from existing source”,并把路徑指向android-sdk-1.5/platforms/android-1.5/samples/ApiDemos
第2步,再新建一個Android項目,依然通過“create project from existing source”的方式,這次把路徑指向android-sdk-1.5/platforms/android-1.5/samples/ApiDemos/tests
這時候ADT會報錯,因為它無法找到APIDemo項目。右鍵,選擇Properties,在Java Build Path –> Projects中添加APIDemo項目即可。
第3步,以“Android Application”方式運行第一個項目(注意正確設置AVD),APIDemo將被安裝到模擬器。
第4步,以“Android Application”方式運行第二個項目(注意正確設置AVD),APIDemo Test將被安裝到模擬器。
第5步,現在,我們可以通過Dev Tools中的Instrumentation來執行APIDemo Test了。找到Instrumentation中的”Tests for API Demos.”,點擊即可開始測試。
這時,通過LogCat即可看到測試結果。
除了通過Dev Tools來執行單元測試,我們還有另外兩種方法:
1、通過ADT,在eclipse中執行測試
在eclipse中選中test項目,直接Run As “Android JUnit Test”既可以,測試結果會以圖形化的方式返回。
2、通過sdb shell命令執行測試
在命令行中執行 adb shell am instrument -w com.example.android.apis.tests/android.test.InstrumentationTestRunner 命令
測試結果如下:
其中,com.example.android.apis.tests是APIDemo Test所在的package。
那么,我們如何創建自己的test項目呢?
大致的步驟如下:
1、新建一個普通的Android項目,比如項目名為Foo,Package為com.foo.bar
2、新建一個Test項目,注意把Package填成com.foo.bar.tests,項目名任意,比如FooTest,Application name任意
3、在FooTest項目的Build Path中添加Foo項目
4、參照APIDemo Test項目的manifext.xml來修改FooTest項目的manifest.xml
5、編寫TestCase(至于測試代碼的編寫,William也還在學習中