Android自動化測試之——總述

Android自動化測試之——總述


JUnit 和 Instrumented JUnit

Android測試是基于JUnit,可以分為兩大類:

  • 依賴本地JVM的JUnit測試, 測試用例在module-name/src/test/java/ 目錄下, 不能訪問Android框架功能;
  • 依賴Android手機的設備化測試, 測試用例在 module-name/src/androidTest/java/ 目錄下; 必須要運行在Android真機或虛擬機;

兩者的對比如下:

這里寫圖片描述

|test types|description|
| :---------------------- | :--- | :--- |
| Local unit test | 測試用例只在本地JVM上運行, 當測試用例中沒有Android框架或者可以mock Android框架時,這類測試用例可以最大化的減少運行時間 |
| Instrumented unit test | 測試用例必須要運行在Android設備或者虛擬機上, 可以獲取設備信息等一系列信息, eg: Contex; |
| Components within your app only|集成測試,UI測試,只能在一個app內(nèi)部進行測試,eg:Espresso;|
|Cross-app Components|集成測試,UI測試,可以跨多個app進行測試,eg:UI Automator;|

公共API

  • @Before: 測試用例初始化操作,在測試類內(nèi)部的每個測試方法運行之前都會運行一次該初始化方法,可以定義多個以@Before注釋的方法;

  • @After: 測試用例收尾,包括釋放資源和內(nèi)存等。在測試類內(nèi)部的每個測試方法運行之后都會運行一次該初始化方法,可以定義多個以@After注釋的方法;

  • @Test: 一條測試用例;

  • @Rule: 為了靈活并且重復定義每個測試方法的表現(xiàn)形式,Android測試中主要有ActivityTestRule 和 ServiceTestRule;

  • @BeforeClass: 測試的初始化方法,和@Before的區(qū)別在于:@BeforeClass注釋的方法在整個測試類中只運行一次,主要用于一些比較耗時或者耗費資源的操作;

  • @AfterClass: 測試的初始化方法,和@After的區(qū)別在于:@AfterClass注釋的方法在整個測試類中只運行一次,主要用來釋放資源;

  • @Test(timeout=expectedTime): 超時測試,用例耗時超過一個確定的時間則判斷該測試用例失敗,eg: @Test(timeout=5000);

  • @Test(expected ...): 異常測試,期望測試方法拋出異常;

  • @Ignore: 跳過某個測試方法不執(zhí)行;

Android Testing Support Library

Android Testing Support Library提供了一組APIs,利用這些APIs可以快速的建立和運行測試用例,包括JUnit測試和UI測試,包括以下幾類API:

  • Espresso: UI測試框架,只能在一個app內(nèi)部,不能跨app測試;

  • UI Automator: UI測試框架,可以跨多個app進行測試;

  • AndroidJUnitRunner: 針對android的junit4 測試框架;

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

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,174評論 25 708
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,641評論 19 139
  • Instrumentation介紹 Instrumentation是個什么東西? Instrumentation測...
    打不死的小強qz閱讀 7,965評論 2 39
  • 1.查看命令的執(zhí)行狀態(tài)返回值的方法: echo $? 2.查看命令返回值的結(jié)果 返回值是 0,就代表程序執(zhí)行成功 ...
    莫戀初閱讀 595評論 0 0
  • 此刻在去晉城的路上,下午拼同學的車去德州。 今天早晨送了女兒回到家里,在公公婆婆的包容里,睡到10點。 覺察自己,...
    趙一桐咨詢師閱讀 343評論 0 1

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