У меня есть модульный тест, который открывает пользовательский диалог и вводит некоторый текст.Это работает, но я не могу принять диалоговое окно или получить кнопку ОК.Кто-нибудь может подсказать, как автоматизировать принятие диалога с помощью junit.
ActivityMonitor activityMonitor = instrumentation.addMonitor(
EditItem.class.getName(), null, false);
instrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_MENU);
instrumentation.invokeContextMenuAction(gridList, R.id.add, 0);
Activity activity = instrumentation.waitForMonitorWithTimeout(
activityMonitor, 10);
assertNotNull("Make sure the edit item activity was called", activity);
assertEquals("Make sure the edit item activity was called",
EditItem.class, activity.getClass());
final TextView nameView = (TextView) activity.findViewById(R.id.name);
// this opens the dialog
TouchUtils.clickView(this, nameView);
// this adds some text
for (int i = 0; i < 3; i++)
{
instrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_X);
}
// here I would like to accept the ok button on the dialog
ОК. Кажется, я обошел эту проблему комбинацией нажатий клавиш
instrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_DOWN);
instrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_DPAD_CENTER);
Проблема сейчасЯ не могу сказать, когда диалоговое окно было закрыто и возвращено в родительское действие, чтобы продолжить тест с
instrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_BACK);
Обойти это тоже можно сейчас:
instrumentation.waitForIdleSync();
instrumentation.sendKeyDownUpSync(KeyEvent.KEYCODE_BACK);
Кажется немного неуклюжим, это как вы должны использовать эти инструменты?