В Robolectric довольно просто смоделировать нажатие кнопки:
Button someButton = (Button) findViewById(R.id.some_button);
someButton.performClick();
Однако я не могу понять, как сделать то же самое с пункт меню. Я создаю меню в Activity.onCreateOptionsMenu
, как я могу имитировать щелчок по одному из его элементов?
Вы уже используете Robolectric тогда, почему не используют RoboMenuItem
?
private MenuItem menuItemName = new RoboMenuItem(R.id.action_names);
private MenuItem menuItemStar = new RoboMenuItem(R.id.action_stars);
добавляют столько же объектов как требуется.
@Test
public void onOptionItemSelectedTest() {
activity.onOptionsItemSelected(menuItemStar);
activity.onOptionsItemSelected(menuItemName);
}
Удостоверяются, что Ваше действие не пустое
@Before
public void setUp() {
activity = Robolectric.buildActivity(MainActivity.class)
.create(new Bundle())
.saveInstanceState(new Bundle())
.restoreInstanceState(new Bundle())
.resume()
.get();
}
версия 4.3