AndroidSpinnerTest总结

源码地址:https://github.com/shiyimin/androidtestdebug/tree/master/chapter3/instrumentation


public class SpinnerTest extends ActivityInstrumentationTestCase2<MainActivity> {

//测试初始化:

public static final int ADAPTER_COUNT = 9;

public static final int TEST_POSITION = 5;

public static final int INITIAL_POSITION = 0;

public static final String INITIAL_SELECTION = "Mercury";

public static final int TEST_STATE_DESTROY_POSITION = 2;

public static final String TEST_STATE_DESTROY_SELECTION = "Earth";

public static final int TEST_STATE_PAUSE_POSITION = 2;

public static final String TEST_STATE_PAUSE_SELECTION = "Earth";

private MainActivity mActivity;

private String mSelection;

private int mPos;

private Spinner mSpinner;

private SpinnerAdapter mPlanetData;


@SuppressWarnings("deprecation")

public SpinnerTest() {

super("com.haohuiyan.spinnersample", MainActivity.class);

}


@Override

protected void setUp() throws Exception {

super.setUp();

setActivityInitialTouchMode(false);

mActivity = getActivity();

mSpinner = (Spinner) mActivity

.findViewById(com.haohuiyan.spinnersample.R.id.Spinner01);

mPlanetData = mSpinner.getAdapter();

}


//测试PreCondition:

public void testPrecondition() {

assertTrue(mSpinner.getOnItemSelectedListener() != null);

assertTrue(mPlanetData != null);

assertEquals(mPlanetData.getCount(), ADAPTER_COUNT);

}


//Ui测试:

public void testSpinnerUI() {

mActivity.runOnUiThread(new Runnable() {

@Override

public void run() {

mSpinner.requestFocus();

mSpinner.setSelection(INITIAL_POSITION);

}

});

this.sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);

for (int i = 1; i <= TEST_POSITION; i++) {

this.sendKeys(KeyEvent.KEYCODE_DPAD_DOWN);


this.sendKeys(KeyEvent.KEYCODE_DPAD_CENTER);

mPos = mSpinner.getSelectedItemPosition();

mSelection = (String) mSpinner.getItemAtPosition(mPos);


TextView resultView = (TextView) mActivity

.findViewById(com.haohuiyan.spinnersample.R.id.SpinnerResult);

String resultText = (String) resultView.getText();

assertEquals(resultText, mSelection);

}

}


//测试onDestroy:

public void testStateDestory() {

mActivity.setSpinnerPosition(TEST_STATE_DESTROY_POSITION);

mActivity.setSpinnerSelection(TEST_STATE_DESTROY_SELECTION);

mActivity.finish();

mActivity = this.getActivity();

int currentPosition = mActivity.getSpinnerPosition();

String currentSelection = mActivity.getSpinnerSelection();


assertEquals(TEST_STATE_DESTROY_POSITION, currentPosition);

assertEquals(TEST_STATE_DESTROY_SELECTION, currentSelection);

}


//测试onResume:

@UiThreadTest

public void testStatePause() {

Instrumentation instr = this.getInstrumentation();

mActivity.setSpinnerPosition(TEST_STATE_DESTROY_POSITION);

mActivity.setSpinnerSelection(TEST_STATE_DESTROY_SELECTION);


instr.callActivityOnPause(mActivity);


mActivity.setSpinnerPosition(0);

mActivity.setSpinnerSelection("");


instr.callActivityOnResume(mActivity);


int currentPosition = mActivity.getSpinnerPosition();

String currentSelection = mActivity.getSpinnerSelection();


assertEquals(TEST_STATE_DESTROY_POSITION, currentPosition);

assertEquals(TEST_STATE_DESTROY_SELECTION, currentSelection);

}

}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值