だから...私がこれをしたことをあざけるためのこれ以上のエレガントなcom.actionbarsherlock.view.MenuItem
方法はありません:
- を実装する独自のクラスを作成しました
com.actionbarsherlock.view.MenuItem
- モッククラスにitemIdのintフィールドを追加しました。
- インターフェイスの他のメソッド
MenuItem
は空白のままです(他のテストで使用する可能性があります)
その結果、私はこの種のテストを受けました:
com.actionbarsherlock.view.MenuItem item = new TestSherlockMenuItem(R.id.some_action);
activity.onOptionsItemSelected(item);
ShadowActivity shadowActivity = Robolectric.shadowOf(activity);
Intent startedIntent = shadowActivity.getNextStartedActivity();
assertNotNull(startedIntent);
ShadowIntent shadowIntent = Robolectric.shadowOf(startedIntent);
assertThat(shadowIntent.getComponent().getClassName(),
equalTo(NextActivity.class.getName()));
ちなみに、私の問題を理解しようとしてくれたEugenMartynovに感謝します:)