Тестирование onPause (), onDestroy () с использованием Robotium - PullRequest
2 голосов
/ 20 октября 2011

Как я могу использовать Robotium, чтобы убедиться, что моя активность правильно обрабатывает onPause(), onDestroy(), onResume() и подобные вызовы?

В моем тесте Robotium я могу назвать такие вещи, как

solo.getCurrentActivity().onKeyDown(0, null);

но как я могу имитировать действие, которое разрушается и воссоздается? Я не вижу никаких

solo.getCurrentActivity().onPause()   

или

solo.getCurrentActivity().onDestroy()

методы, которые я могу использовать? Разве это не то, для чего предназначен Robotium?

Ответы [ 2 ]

2 голосов
/ 20 октября 2011

Используйте базовый класс тестового случая, который имеет доступ к Instumentation, а затем используйте Instrumentation # callActivityOnPause () и Instrumentation # callActivityOnDestroy () .

1 голос
/ 14 января 2014

Это уничтожит вашу активность и создаст новую:

    getInstrumentation().runOnMainSync(new Runnable() {
        @Override
        public void run() {
            activity.recreate();
        }
    });
    setActivity(null);
    activity = getActivity();

Это работает только на API 11 и выше из-за вызова «activity.recreate ()».Если вы не заботитесь о сохранении / восстановлении состояния экземпляра в этом тесте, вы можете вместо этого вызвать «activity.finish ()», который доступен во всех версиях.

...