Android と JUnit のテストは初めてです。ここで説明されているように、MyFirstApp の例のいくつかのテスト ケースを作成しようとしています: http://developer.android.com/training/basics/firstapp/index.html
私のテストクラスは次のようになります。
@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 テストは成功します。ただし、これにより「button.performClick();」の NPE が得られます。
誰かが私が間違っているかもしれないことを指摘できますか?
ありがとう -Angshu