Как проверить метод, который запускает новую деятельность? - PullRequest
1 голос
/ 11 июля 2011

У меня проблема с написанием тестового примера для моего приложения.

Сначала, может быть, я расскажу, как работает приложение.Первый экран - это экран входа в систему, после успешного входа в систему отображается новое действие, а учетные данные пользователя сохраняются в SharedPreferences, поэтому, когда действие начинается снова и пользователь не вышел из системы, приложение запускается на втором экране действия.1003 *

Я хочу проверить первое действие с логином.Моя главная проблема - как проверить успешный вход в систему.Если логин и пароль действительны, создается намерение для нового действия и начинается новое действие.Мой код для этого метода показан ниже:

public void testLoginValid() throws Throwable {
    for(index = 0; index < validEmails.length; index++) {
        runTestOnUiThread(new Runnable() {
            @Override
            public void run() {
                emailEditView.setText(validEmails[index]);
                passwordEditView.setText(defaultPassword);
                logIn.performClick();
            }
        });
        getInstrumentation().waitForIdleSync();
        //how to check if the activity started and how to go back?
    }
}

Это хороший способ проверить такой случай?Проблема в том, что когда логин действителен и он входит в систему, остальные тестовые примеры зависают, потому что активная активность изменилась, и я не знаю, как смоделировать ее завершение, что-то вроде этого.Как это сделать?Или, может быть, я должен написать метод для каждого из имен входа (но я не думаю, что это хорошая практика ...).Заранее спасибо за любую помощь.

Ответы [ 2 ]

2 голосов
/ 11 июля 2011

Если ваша задача - проверить вход в систему, вы можете заменить фактическое начало новой активности каким-либо фиктивным действием и проверить, запускается ли это действие.Надеюсь, это поможет.

0 голосов
/ 12 июля 2011

Проблема с внесением временных изменений в ваш код для запуска тестов заключается в том, что вы не тестируете «настоящий» код и можете запускать тесты только изредка. Гораздо лучше настроить все так, чтобы вы могли запускать все свои тесты автоматически в любое время. Эта идея стоит за разработкой, управляемой тестами.

К сожалению, Android делает это намного сложнее, чем должно быть - но ситуация улучшается:

Для тестирования вне устройства посмотрите Robolectric .

Для тестирования на устройстве посмотрите Borachio .

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