Android程式測試

來源:互聯網
上載者:User

Android程式測試
一、建立測試環境

安裝了Android Developer Tools (ADT) 外掛程式的Eclipse將為你建立,構建,以及運行Android程式提供一個基於圖形介面的整合式開發環境。Eclipse的一項方便的特性是可以自動為你的Android應用項目建立一個對應的測試專案。

1、建立一個Android工程(如下,名為AndroidNormalProject)、或者匯入已經存在的工程。

2、產生一個該工程對應的測試工程

在工程上右擊-->Android Tools-->New Test Project...

二、建立與執行測試案例

Activity都是通過結構化的方式編寫的。請務必把你的測試代碼放在一個單獨的包內,從而與其它的正在測試的代碼分開。

按照慣例,你的測試包的名稱應該遵循與應用程式套件名相同的命名方式,在應用程式套件名後接“.tests”。在你建立的測試包,為你的測試案例添加Java類。按照慣例,你的測試案例名稱也應遵循你要測試的Java或Android的類相同的名稱,但尾碼為“Test”。

1、建立測試包 和對應的測試案例名稱(工程包名.test)

工程包:

測試包:

2、建立測試夾具(Fixture)

測試夾具由對象必須由一個或多個正在運行測試來初始化。要建立測試夾具,你可以在你的測試中重寫setUp()和tearDown()方法。測試會在運行任何其它測試方法之前自動調用setUp()方法。你可以用這些方法來保持代碼的測試初始化和清理是分開。

 

import android.test.ActivityInstrumentationTestCase2;import android.widget.TextView;import com.example.androidnormalproject.MainActivity;import com.example.androidnormalproject.R;public class MainActivityTest extends ActivityInstrumentationTestCase2{private MainActivity mMainActivity;private TextView mTextView;public MainActivityTest() {super(MainActivity.class);}@Overrideprotected void setUp() throws Exception {super.setUp();mMainActivity = getActivity();if(mMainActivity == null) return;mTextView = (TextView) mMainActivity.findViewById(R.id.helloword_text);}@Overrideprotected void tearDown() throws Exception {super.tearDown();}}

 

3、添加一個測試前提

在正式測試之前,我們先保證測試的對象正確的執行個體化和初始化,添加一個testPreconditions()方法

 

public void testPreconditions() {    assertNotNull(mMainActivity is null, mMainActivity);    assertNotNull(mTextView is null, mTextView);}
4、添加一個測試方法驗證Activity

 

 

public void testMainActivityTextView_helloword(){final String expected = mMainActivity.getString(R.string.hello_world);final String actual = mTextView.getText().toString();assertEquals(expected, actual);}

 

5、運行測試

Run As --> Android Junit Test

三、測試UI組件

1、測試一個Button的布局

 

/** * 測試Button的布局 */public void testMainActivityButton_layout(){final View decorView = mMainActivity.getWindow().getDecorView();//是否在螢幕內    ViewAsserts.assertOnScreen(decorView, mButton);    final ViewGroup.LayoutParams layoutParams =            mButton.getLayoutParams();    assertNotNull(layoutParams);    //測試布局屬性    assertEquals(layoutParams.width, WindowManager.LayoutParams.MATCH_PARENT);    assertEquals(layoutParams.height, WindowManager.LayoutParams.WRAP_CONTENT);}
2、驗證按鈕的行為

 

 

/** * 測試按鈕點擊事件 */public void testMainActivityButton_onClick(){String expectedInfoText = mMainActivity.getString(R.string.button_text);    TouchUtils.clickView(this, mButton);    assertTrue(View.VISIBLE == mButton.getVisibility());    assertEquals(expectedInfoText, mButton.getText());}
注意:上面的TouchUitl是將事件安全的從其他線程發送到UI線程,不應該將該方法用於UI線程中使用。

 

3、應用測試的注釋

@SmallTest

標誌著一個測試回合的小型測試的一部分

@MediumTest

標誌著一個測試回合的中等測試的一部分

@LargeTest

標誌著一個測試回合的大型測試的一部分

 

總結:用上面簡單介紹的測試方法就可以建立適合我們的單元測試(測試代碼中可能性最小的代碼塊)和功能測試(驗證單個應用組件是否與使用者期望的那樣與其它組件協同工作)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.