本文基於 github 項目 Ninja2005/AndroidTest。android
測試是Android開發過程當中的重要組成部分,經過對APP進行持續的運行測試,你能夠在發佈以前驗證程序的正確性、功能和可用性。git
三類測試:Unit tests、Integration tests和UI testsgithub
單元測試,包含兩種類型:Local tests、Instrumented tests數據庫
Instrumented tests(儀器測試)網絡
指定測試運行器 @RunWith(AndroidJUnit4.class)框架
指定測試的運行時長以及運行頻率工具
@SmallTest 不容許文件文件、數據庫、網絡。運行時間200ms單元測試
@MediumTest 訪問文件、數據庫。運行時間1000ms測試
@LargeTest 訪問文件、數據庫、網絡,大多數的UI測試。運行時間1000ms3d
測試框架
本項目用到的4種框架:Junit、Mockito、Robolectric、Espresso
Junit
JUnit4是一個Java語言的單元測試框架。
Mockito
Mockito是一個mock框架,經過Mockito來mock出其餘的依賴對象,用來替換真實的對象,使得待測的目標方法被隔離起來,避免一些外界因素的影響和依賴。
Robolectric
Robolectric是三方開源的單元測試框架,經過實現一套JVM能運行的Android代碼,而後在unit test運行的時候去截取android相關的代碼調用,而後轉到本身實現的代碼去執行這個調用的過程。 運行器:@RunWith(RobolectricTestRunner.class)
Espresso
Espresso是Google開源,白盒風格的UI測試工具,運行基於 SDK。 運行器:@RunWith(AndroidJUnit4.class)