根據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