Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android程序測試

Android程序測試

編輯:關於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);
	}
	
	@Override
	protected void setUp() throws Exception {
		super.setUp();
		mMainActivity = getActivity();
		if(mMainActivity == null) return;
		mTextView = (TextView) mMainActivity.findViewById(R.id.helloword_text);
	}
	
	@Override
	protected 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

標志著一個測試運行的大型測試的一部分

 

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

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