[Android]Unit Test for Android

根據Android Developer文檔,對Android的UT作個學習總結:html

1. 搭建Eclipse測試環境。android

  Eclipse的ADT(Android Developer Tools) 插件爲咱們提供了經過GUI來建立、運行Android 測試用例的集成開發環境。app

  在Eclipse中,經過以下步驟來爲你的Android應用建立測試項目:ide

    a. 右鍵Android應用, 選擇Android Tools —> New Test Project學習

    b. 根據測試項目建立嚮導,爲你的測試項目設置相應的屬性。測試

 

2. 建立測試用例spa

   最好爲項目的每個Activity都建立一個測試類。插件

  每一個測試用例大致包括三個部分:code

    a. Test Fixture,  就是一些爲了跑你的測試方法而須要被初始化的對象。htm

    b. Preconditions test method, 一些前置條件的測試方法,用來確保你要測試的對象是否被正確初始化了。另外還有setUp()、tearDown()方法, 測試程序會在調用任何其餘測試方法以前調用setUp()方法,調用      其餘測試方法以後調用tearDown()方法。能夠在setUp()方法中初始化你要測試的對象。

       c. 與具體Activity相關的測試方法。

  步驟:

    a. 默認狀況下,測試項目建完會爲你建立一個叫<your_app_package_name>.tests的包,若是沒有,本身建一個。

      b. 在a中的建立的包裏,爲你將要測試的Activity建立一個名爲<your_app_activity_name>Test 的測試類, 如MyFirstTestActivityTest

      c. 編寫測試類。測試類必需要繼承ActivityTestCase類的一個子類,如

    publicclassMyFirstTestActivityTest
          
extendsActivityInstrumentationTestCase2<MyFirstTestActivity>{

        
private MyFirstTestActivity mFirstTestActivity; //你要測試的Activity
        
private TextView mFirstTestText;

       
public MyFirstTestActivityTest(){
          
super(MyFirstTestActivity.class);
        
}

        
@Override
        
protectedvoid setUp()throwsException{
            
super.setUp(); //必須調用父類的setUp方法, JUnit的要求
            mFirstTestActivity
= getActivity(); //獲取一個你要測試的Activity的引用
            mFirstTestText
=
               
(TextView) mFirstTestActivity
               
.findViewById(R.id.my_first_test_text_view);
        
}

       publicvoid testPreconditions(){ //用來確保你的Test Fixture,即你要測試的對象是否被正確初始化了。
          assertNotNull
(「mFirstTestActivity is null」, mFirstTestActivity); //若是爲false,拋出 異常, 第一個參數用來輸出提示,爲true,測試經過
          assertNotNull
(「mFirstTestText is null」, mFirstTestText); //無論爲true仍是false,測試程序都會調用其餘的測試方法
       }

       publicvoid testMyFirstTestTextView_labelText(){ //具體的測試類, 放在testPreconditions()方法以後——先作初始化驗證
          
finalString expected =
              mFirstTestActivity
.getString(R.string.my_first_test);
          
finalString actual = mFirstTestText.getText().toString();
          assertEquals
(expected, actual);
       }

    }    d. 運行測試用例。鏈接一個模擬器或手機,確保在設置--開發者選項中將USB Debugging打開了。右鍵你的測試類,選擇Run As --> Android Junit Test. 而後選擇要運行的設備,開始跑測試。在Junit 試圖中看結果。(未完待續)AssertionFailedError
相關文章
相關標籤/搜索