Имитация щелчка по пункту меню в Robolectric

В Robolectric довольно просто смоделировать нажатие кнопки:

Button someButton = (Button) findViewById(R.id.some_button);
someButton.performClick();

Однако я не могу понять, как сделать то же самое с пункт меню. Я создаю меню в Activity.onCreateOptionsMenu , как я могу имитировать щелчок по одному из его элементов?

29
задан futlib 23 September 2011 в 05:24
поделиться

1 ответ

Вы уже используете 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

Robolectric
0
ответ дан 28 November 2019 в 01:27
поделиться
Другие вопросы по тегам:

Похожие вопросы: