IntelliJ IDEA中怎樣使用JUnit4


背景
近期參與了一個Anroid醫療項目,當中項目底層有很是多基礎類及通信類,而且很是多涉及複雜的字節操做還有多線程同步及狀態機處理。這種項目作一下TDD仍是必要的,儘可能項眼下期把風險減小一些。
現在的問題是本人使用的是IntelliJ開發的Android項目,剛開始還真不知道怎麼下手。在參考了一些資料後。總結了一下IntelliJ中配置JUnit測試環境的步驟,但願對你們有幫助。


環境:
操做系統:Windows 7
IntelliJ版本號:13.1
Android SDK API:19
Java Version:1.7
JUnit 4子版本號:JUnit 4.11(IntelliJ自帶)


步驟:
1、在項目的AndroidManifest.xml文件裏作例如如下更改:
在application節點下加入

<uses-library android:name="android.test.runner"/>,如圖:
在根節點下加入例如如下內容:
當中targetPackage跟你所在項目的包名一樣(參見你的AppManifest.xml文件頂部:



2、爲你所在項目加入例如如下jar包引用
一、junit-4.11
二、harmcrest-core-1.3
三、annotations

3、調整項目對jar包的引用順序

作這個調整是因爲咱們使用的Android API中包括了JUnit 3.8,默認SDK是放在最前面的。不然代碼中的Junit會被以爲是Junit 3.8,那你就僅僅能使用Junit 3的測試方式了。

4、在項目文件夾樹中,建立一個與src平級的文件夾用於存放所有的測試類。
簡單起見我使用的是tests.

除了建立文件夾。咱們還需要指定新建立的文件夾爲測試根文件夾:
右鍵tests文件夾,選擇'Mark Directory As'--->'Test Sources Root'


5、在你的測試根文件夾下建立你的測試分類文件夾及詳細的測試類
在測試類內部你需要的僅僅是給測試方法加上@Test標註。


6、執行你的測試
一、在代碼編輯界面,在你的測試方法體中點擊右鍵,在彈出的菜單中選中以JUnit的方式執行

這樣的方式很適合剛寫完測試。亟待看到某個測試的執行結果的場景。

另外一種使用快捷鍵的方式來單獨執行某個測試,咱們僅僅需要將文本焦點切換到某個測試方法中,而後在使用組合鍵Ctrl+Shift+F10就可以達到同上面同樣的測試效果。

二、編輯執行Configuration
點擊Configurationbutton,在彈出界面中按例如如下步驟建立一個JUnit執行配置



在彈出的配置窗體作簡單的配置。

詳細配置細節請參見本文參考部分的《IntelliJ IDEA對JUnit支持的官方文檔》部分。html

這樣的方式適合於批量運行測試的場景。



回想JUnit3的使用方式
一、讓你的測試類繼承自Testcase
二、每個測試方法名必須以小寫test爲前綴
備註:IntelliJ IDEA已經內部支持JUnit4,Android SDK中也至少對JUnit3作了支持。所以並不需要再從Maven中對JUnit進行依賴管控。

除非你需要使用最新的JUnit中的某項特性。android



更新:
2014-10-16: 在開啓JUnit4.0功能後項目中涉及Android生命週期的測試類(比方AndroidTestCase)將沒有辦法執行。緣由在於AndroidTestCase這些是由SDK支持的,但是SDK中引用的是JUnit3.8的類庫,個人理解是假設你引用的是JUnit4.0,那麼在執行時AndroidTestCase這些Android特有的測試依賴的JUnit3.8在執行時是不會載入的。測試執行器嘗試載入該類測試時就會報錯。 所以,假設你但願在你的項目中測試與Android生命週期相關的類的話,那就僅僅能在項目中摒棄JUnit4。


參考:
在IntelliJ IDEA的項目中開啓Annotations

IntelliJ IDEA對JUnit支持的官方文檔

IntelliJ IDEA提供的JUnit測試的Sample項目


ADT中怎樣配置JUnit

JUnit4測試說明:

JUnit4在IntelliJ IDEA中的使用(應該有三篇,但是僅僅有後兩篇可見。可能第一篇就是將配置的,但是不可見--有點遺憾)

Android單元測試初探--Instrumentation

IntelliJ IDEA和ADT的持續測試插件Infinitest

ADT中使用JUnit的一個教程

一個老程序猿的Android測試驅動開發實踐系列3篇(主要側重界面交互測試)








相關文章
相關標籤/搜索