使用Android Studio進行單元測試

轉載請註明出處:http://blog.csdn.net/zhaokaiqiang1992

Android Studio已經到了1.2版本,國內的開發者基本也在從Eclipse向Android Studio進行轉變,對於Android開發者,以後必將是Android Studio的天下。
昨天在完善煎蛋項目的時候,需要進行單元測試,在Eclipse環境中進行是很簡單的,但是在Android Studio環境中進行單元測試,我還沒有嘗試過,在國內找了很多資料,大都是人云亦云,也沒有測試成功,然後在這篇文章的指導下成功運行,特此翻譯,供大家學習參考。

原文:http://rexstjohn.com/unit-testing-with-android-studio/


這篇文章介紹了在Android Studio中進行單元測試的基礎部分。

在Android Studio中可以進行單元測試

很多的文章指導你應該在“build.gradle” 文件裏面添加幾行代碼從而允許單元測試,並且告訴你應該在項目依賴中添加Android測試庫。

其實你並不需要按照這種錯誤的方式去做,因爲這是完全沒有必要的。

Android Studio本身就支持Android單元測試,你只需要在你的項目中配置一下就可以了。

注意:還有好幾種廣受歡迎的Android單元測試框架,比如Robolectric,它們比我在這裏提到的需要更多的配置,我希望在未來可以以這個題目再寫一些指導文章。

創建你的單元測試文件夾

我喜歡把單元測試放在我的主項目裏面,比如“com.mypath.tests.” ,你可以把測試目錄放到你想要的地方。開始之前,像下面這樣,先創建你的測試文件夾。(譯者注:這一步不是必須的,你也可以把單元測試類創建在與Android Studio默認的ApplicationTest類相同的路徑下面)

接下來,創建一個叫做 “ExampleTest”的類,注意要繼承自InstrumentationTestCase類

然後可以添加一個簡單的測試代碼,我們知道這段代碼肯定會運行失敗

public class ExampleTest extends InstrumentationTestCase {
    public void test() throws Exception {
        final int expected = 1;
        final int reality = 5;
        assertEquals(expected, reality);
    }
}

注意:所有的測試方法必須以”test”開頭,這樣Android Studio才能自動的找到所有你想要進行單元測試的方法。

爲你的項目配置單元測試

現在我們已經有了一個會運行失敗的測試單元,我們必須把它run起來。

首先點擊”Run-> Edit Configurations”

然後點擊“+”從左邊彈出的列表裏,選擇添加一個 Android Tests,然後你可以在右上角給它改名爲你想要的名字。

然後就會創建一下像下面這樣的測試項目配置

從下拉菜單中選擇你當前的module

接下來,選擇”All in Package”選項,然後把你的剛纔創建的測試文件夾選中。你也可以選擇“All in Module”選項,這樣Android Studio會自動的找到你整個Module中的所有測試單元,你也可以通過另外的選項,指定某一個類甚至是測試方法。

做完這一切之後,看起來應該像下面這樣

我也喜歡選中下面的“Show chooser dialog”,這樣當每次運行的時候,我可以指定如何去運行

現在點擊”Apply”然後關閉,你現在應該可以看到你的測試案例已經作爲一個可以運行的項目配置在Android Studio上面的工具欄上了

運行我們的單元測試

我使用Genymotion來完成所有的事情,所以開啓你的Genymotion然後運行test

在assertion這一行添加一個斷點,然後點擊 “run debug mode”,目的是爲了證明Android Studio確實執行了我們的單元測試。

當你開始你的測試工程之後,你會看到一個叫做“Running Tests…”的顯示窗口

當你的測試沒有通過,點擊“Logcat”然後查看綜合的輸出結果,看下我們測試失敗的原因

通過控制檯,你會發現給出的錯誤理由應該是

“junit.framework.AssertionFailedError: expected:<1> but was:<5>

恭喜你,你已經成功測試出錯誤啦~

下面的這些資料在完成本文時,給了很大的幫助

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章