這篇文章介紹了在Android Studio中進行單元測試的基礎部分。
很多教程都指導你應該在“build.gradlew”中添加幾行代碼來開啓“instrument tests” 功能,而且還需要添加 Android 測試庫的項目依賴。
其實你並不需要按照這種錯誤的方式去做,因爲這是完全沒有必要的。
Android Studio本身就支持Android單元測試,你只需要在你的項目中簡單配置一下就可以了。
注意:還有好幾種流行的Android單元測試框架,比如Robolectric,這些框架涉及到的配置和設置比我在這裏提到的更多,我希望在未來可以以這個主題寫一些指導教程。
創建你的單元測試文件夾
我喜歡把單元測試放在我的主項目裏面,比如“com.mypath.tests.” ,你可以把測試目錄放到你想放的任何地方。在開始之前,像下面這樣,先創建你的”test”文件夾。(譯者注:這一步不是必須的,你也可以把單元測試類創建在與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,然後你可以將這個測試配置重新命名爲”test”或與之相關的名字
然後就會創建如下的測試項目配置
從下拉菜單中選擇你當前的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>”
恭喜你,你已經成功測試出錯誤啦~
下面的這些資料在完成本文時,給了很大的幫助