Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android系統教程 >> Android開發教程 >> Android測試教程(9):ApplicationTestCase示例

Android測試教程(9):ApplicationTestCase示例

編輯:Android開發教程

前面介紹了Android測試的一些理論知識,從本篇開始的幾篇將結合ApiDemoTest示例來介紹Android測試的實例。在此之前可 以參照Android測試教程(3):測試項目 創建ApiDemos->tests 測試項目,本項目測試用來測試ApiDemos,主要目的是介紹 Android測試框架的使用方法。

當然要測試ApiDemos,事先要創建好項目ApiDemos。下圖顯示了創建好ApiDemos- >Tests後,ApiDemos->Tests中所含的Java類:

Android測試項目也 是一個Android應用項目,其基本使用方法和開發一般的Android應用非常類似,Android測試項目主要是利用Android測試框架編 寫測試用例來測試對應的Android應用的各個方面。

其中AllTests.java 定義如下:

public class AllTests 

extends TestSuite {     

 public static Test suite() {
 return new TestSuiteBuilder(AllTests.class)
 .includeAllPackagesUnderHere() 
 .build();
 }     
}

使用TestSuiteBuilder 指明所有該包和其子包中定義的TestCase都為最終TestSuite 的一部分(需要被運行的測試 )。

AllTests.java 一般可以不用修改的應用到大部分的測試項目中,如果有特殊需要,可以使用 android.test.suitebuilder 的類定義那些Testcase 需要包含到最終的測試包(Test Suite) 中.

ApiDemosApplicationTests 測試介紹ApplicationTestCase的基本使用方法。

下圖為ApplicationTestCase 的繼承關系:

ApplicationTestCase 主要用來測試Application 類,提供了對Application類生命周期方法的基本支持,並可以支持 一些dependency injection 以幫助構造測試Application的的環境。

Application Lifecycle 支持, 每個Application 運行 都遵循一定的順序(生命周期方法),ApplicationTestCase提供下面方法來支持對Application生命周期方法的測試:

只有當測試用例調用createApplication()後才會執行Application 的onCreate 方法,從而使得你有機會在調用Application 的onCreate方法之前對測試框架做些調整。

當測試用例結束時,測試用例的tearDown 方法會被調用,然後會調用Application 的onDestroy()方法停止和銷毀 Application.

Dependency Injection 每個Application都依賴於運行它的Context 對象,Android測試框架允許你注入一個Mock的或者孤立 的context 對象,以實現真正的單元測試,如果只是想做一般的測試,你的Application方法將被注入全功能的Context對象,你 可以使用setContext 來注入你定義的Mock 的Context對象,setContext 必須在createApplication 之前調用。測試框架提供了 如MockContext, RenamingDelegatingContext, ContextWrapper 來幫助你構造用於測試Applicaton的Context對象。

本 例的代碼如下:

public class ApiDemosApplicationTests     
 extends ApplicationTestCase<ApiDemosApplication> {     

 public ApiDemosApplicationTests() {     
 super(ApiDemosApplication.class);     
 }     

 @Override 
 protected void setUp() throws Exception {     
 super.setUp();     
 }     

 @SmallTest 
 public void testPreconditions() {     
 }     

 /**    
 * Test basic startup/shutdown of Application    
 */ 
 @MediumTest 
 public void testSimpleCreate() {     
 createApplication();     
 }     

}

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved