Как получить ссылку на меню из действия - PullRequest
2 голосов
/ 01 июня 2011

Я пишу тестовые сценарии JUnit для проекта Android.Я собираюсь протестировать пункты меню параметров (вы знаете, меню, вызываемое нажатием клавиши меню) из действия.

Однако в нашем проекте меню генерируется динамически из некоторого интернет-контента.Самое главное, что объект Menu является частной переменной в нашем объекте деятельности.

Теперь мой вопрос: как я могу проверить это меню (проверить количество пунктов меню, текст каждого элемента и т. Д.).

Ответы [ 3 ]

1 голос
/ 02 июня 2011

Для проверки вызова пунктов меню вы можете использовать Instrumentation.invokeMenuActionSync () .

0 голосов
/ 09 июля 2013

вы бы получили ссылку на объект меню, используя PhoneWindow. У него есть закрытый статический финальный класс с именем «PanelFeatureState», этот класс содержит поле с именем «MenuBuilder menu», вам потребуется отражение для доступа к этому классу и его полям. Инфлятор меню читает файл ресурсов xml и сохраняет меню в этом объекте.

, чтобы подвести итог: PhoneWindow-> PanelFeaturestate-> MenuBuilder menu

Вы можете получить ссылку на PhoneWindow из активности, используя: activity.getWindow ()

0 голосов
/ 02 июня 2011

способ, которым вы обычно это делаете, - сделать пакет членов закрытым (без квалификатора) в java, а затем запустить свой тест junit в том же пакете java, что и класс, в котором размещено меню (возможно, ваша деятельность).

модульный тест не должен физически размещаться в одной и той же папке пакета, если оба класса имеют один и тот же пакет во время выполнения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...