Я пытался добиться сценария автоматизации тестирования с использованием JUnit Framework для Android.Я использовал CountDownLatch, поскольку хотел включить один асинхронный сценарий.
Я написал файл тестового примера, используя ServiceTestCase для своей службы.Служба автоматически запускает асинхронную операцию с использованием потока.После выполнения асинхронной операции я получаю результат.Этот результат я пытаюсь утверждать.Теперь, если операция не удалась, я пытаюсь снова выполнить асинхронную операцию.Теперь, что происходит, если операция не удалась, я пытаюсь повторить операцию снова, в этом случае я получаю контекст как нулевой.
Это когда я запускаю сервис из тестового случая, через некоторое время объект контекстастановится нулевым?Когда это мусор?
Служба, которую я использую, является удаленной службой.Это создает проблему?
public class MyServiceTest extends ServiceTestCase<MyService>{
final CountDownLatch signal = new CountDownLatch(1);
Solo solo;
public MyServiceTest() {
super(MyService.class);
}
public void testEndToEnd(){
Intent intent = new Intent(MyService.class.getName());
startService(intent);
try {
signal.await(60, TimeUnit.SECONDS);
}
catch(InterruptedException e) {
e.printStackTrace();
}
//want to put some assert statement
}
}
В onCreate службы я создаю экземпляр класса Network, который будет выполнять тяжелую работу в сети.если операция не удалась, отправьте широковещательное уведомление.Теперь я зарегистрировал один BroadcastReceiver, который получит уведомление и перезапустит работу сети.В этом broadcastReciever мне нужен широковещательный контекст, который становится нулевым ..