我是Android和JUnit測試的新手。 我試圖想出一些測試用例爲MyFirstApp例如如下解釋: http://developer.android.com/training/basics/firstapp/index.htmlrunOnUiThread和sendKeys調用的序列,導致Android上的NPE
這裏是我的測試類看起來像:
@Override
protected void setUp() throws Exception {
// TODO Auto-generated method stub
super.setUp();
setActivityInitialTouchMode(false);
mainActivity = (MainActivity)getActivity();
editText = (EditText) mainActivity.findViewById(
com.example.myfirstapp.R.id.edit_message);
button = (Button) mainActivity.findViewById(
com.example.myfirstapp.R.id.button1);
}
public void testPreconditions(){
assertTrue(editText.getHint().toString().equals(
mainActivity.getString(
com.example.myfirstapp.R.string.edit_message)));
}
public void testUI(){
mainActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
editText.performClick();
}
});
getInstrumentation().waitForIdleSync();
this.sendKeys(KeyEvent.KEYCODE_A);
this.sendKeys(KeyEvent.KEYCODE_B);
this.sendKeys(KeyEvent.KEYCODE_C);
this.sendKeys(KeyEvent.KEYCODE_D);
this.sendKeys(KeyEvent.KEYCODE_E);
mainActivity.runOnUiThread(new Runnable() {
@Override
public void run() {
button.performClick();
}
});
}
的testPrecontions測試成功。然而,這給NPE「button.performClick();」
有人能指出我可能做錯了什麼嗎?
感謝 -Angshu
這將是我的下一個消化,你也可以接受你自己的答案來表明,這個問題是成功的答案。 – Simulant 2013-02-17 14:29:14