Android 單元測試——Espresso 概述篇

單元測試的好處

  1. 發(fā)送錯誤的時候,快速反饋
  2. 在早期開發(fā)中,預(yù)先發(fā)現(xiàn)問題
  3. 安全的重構(gòu)代碼,優(yōu)化代碼的時候不用擔(dān)心回歸
  4. 穩(wěn)定的開發(fā)速度,不用擔(dān)心技術(shù)債務(wù)

資源

幫你更好的寫單元測試

  1. Espresso
  2. Robolectric
  3. AndroidJUnitRunner
  4. Android Studio

Espresso

用 Espresso 寫簡潔,漂亮,可靠的 Android UI 測試。

@Test
public void greeterSaysHello() {
    onView(withId(R.id.name_field)).perform(typeText("Steve"));
    onView(withId(R.id.greet_button)).perform(click());
    onView(withText("Hello Steve!")).check(matches(isDisplayed()));
}

Espresso 測試速度是最快的,讓你遠(yuǎn)離 UI 長時間的等待。

目標(biāo)用戶

Espresso 是針對開發(fā)人員的,他們認(rèn)為自動化測試是開發(fā)流程中的一部分。當(dāng)用于黑盒測試的時候,Espresso 可以最大化的解鎖那些熟悉的代碼。

同步能力

每次調(diào)用 onView() 的時候,Espresso 會等待相應(yīng)的 UI 操作或者斷言,直到他們滿足以下功能:

  1. 消息隊列為空
  2. 沒有 異步任務(wù)
  3. 空載資源處于閑置狀態(tài)

相關(guān)引用包

espresso-core:核心包包含 View 的匹配(matchers), 動作(actions), 和 斷言(assertions)。
espresso-web:包含 WebView 的相關(guān)支持。
espresso-idling-resource:Espresso 與后臺工作的同步操作。
espresso-contrib:擴(kuò)展支持資源,例如時間選擇器(DatePicker),高級的 ListView(RecyclerView),抽屜效果(Drawer),異步代碼測試(CountingIdlingResource)的動作,容易檢測。
espresso-intents:擴(kuò)展和驗證 Intent。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容