Выключение и перезапуск приложения в тестовых действиях в наборе тестов

Я использую Robotium для написания тестового примера для приложения Android. У меня есть два тестовых мероприятия. В первой тестовой процедуре проверки активности войдите в приложение, а затем завершите приложение.

public static Test suite() {
               TestSuite suite = new TestSuite(AllTests.class.getName());
               //$JUnit-BEGIN$

               suite.addTestSuite(LoginActivityTest.class);

               suite.addTestSuite(MainScreenActivityTest.class);
               //$JUnit-END$
               return suite;
}

Но из-за обрыва в первом тесте второй тест не пройдет. Что я могу сделать, чтобы перезапустить приложение в тестовом наборе?


person Ron D.    schedule 09.02.2012    source источник
comment
Не могли бы вы уточнить, что вы подразумеваете под прекращением работы приложения? Вы имеете в виду, что вы останавливаете текущую деятельность?   -  person Maks    schedule 04.04.2012


Ответы (1)


Каждый тест-кейс должен выполняться независимо. Они не могут полагаться на предыдущий успех или ошибку. Это общий совет для всех модульных тестов.

Вы можете использовать setup() и tearDown() с robotium (по крайней мере, начиная с версии 3.0) для выполнения кода до и после каждого теста, независимо от того, не прошел ли тест.

setup() и tearDown() будут вызываться перед каждым тестовым набором, чтобы вы не связывали тестовые наборы друг с другом.
Пример показан в Учебник "Начало работы" (pdf).

person guerda    schedule 09.02.2012
comment
Спасибо @furtwart. Я не уверен, что вы полностью понимаете мой вопрос. Каждое тестовое действие имеет свою собственную настройку и отключение, но когда LoginActivityTes завершен, приложение полностью закрывается, и MainScreenActivityTest вообще не запускается. Как сделать, чтобы приложение снова запускалось? - person Ron D.; 09.02.2012
comment
Хорошо, я пропустил эту часть, спасибо за дополнение. Но, тем не менее, вы слишком тесно связали свои тестовые примеры. Они могут не зависеть друг от друга. Как перезапустить приложение, я не знаю. - person guerda; 09.02.2012