Robolectric で日付ピッカーの動作をテストしようとしています。
@Test
public void shouldSetStartedOnDate() {
activity.findViewById(R.id.cruise_form_pick_started_on_button).performClick();
DatePickerDialog dialog = (DatePickerDialog) ShadowDatePickerDialog.getLatestDialog();
assertThat(dialog.isShowing(), is(true));
dialog.updateDate(2013, 3, 13);
ShadowDialog shadowDialog = Robolectric.shadowOf(dialog);
shadowDialog.clickOnText("Done");
assertThat(dialog.isShowing(), is(false));
TextView startedOnText = (TextView) activity.findViewById(R.id.cruise_form_started_on);
assertThat(startedOnText.getText().toString(), equalTo("2013-03-13"));
}
残念ながらdialog.updateDate(2013, 3, 13)
、java.lang.NullPointerException が発生します
java.lang.NullPointerException
at android.app.DatePickerDialog.updateDate(DatePickerDialog.java:142)
at net.lucassus.yachtexpenses.activities.CruiseFormActivityTest.shouldSetStartedOnDate(CruiseFormActivityTest.java:99)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
...
デバッガーで、dialog.mDatePicker
インスタンス変数がnull
. 問題は、私が間違っていることは何ですか? 残念ながら、robolectric v2.0 で日付ピッカー ダイアログをテストする方法の良い例を見つけることができません。