Модульное тестирование Activity.startService () вызов?

Попытка написать свое первое приложение для Android за TDD (я написал несколько небольших приложений для Android без TDD, поэтому я знаком с окружающей средой), но я не могу понять, как написать свой первый тест.

Сценарий:

У меня есть активность TasksActivity и служба TasksService. Мне нужно проверить, что TasksActivity запускает TasksService в его методе onStart ().

Тест, который я написал, таков:

public class ServiceControlTest extends ActivityUnitTestCase<TasksActivity>{
public ServiceControlTest() {
    super(TasksActivity.class);
}

public void testStartServiceOnInit () {
    final AtomicBoolean serviceStarted = new AtomicBoolean(false);
    setActivityContext(new MockContext() {
        @Override
        public ComponentName startService(Intent service) {
            Log.v("mockcontext", "Start service: " + service.toUri(0));
            if (service.getComponent().getClassName().equals (TasksService.class.getName()))
                serviceStarted.set(true);
            return service.getComponent();
        }
    });
    startActivity(new Intent(), null, null);
    assertTrue ("Service should have been started", serviceStarted.get());
}           
}

В моем методе onCreate () в TasksActivity я имею:

    startService(new Intent(this, TasksService.class));

Я также пытался

    getBaseContext().startService(new Intent(this, TasksService.class));

Но ни в одном из случаев метод startService моего MockContext не вызывается. Есть ли способ настроить перехват этого метода? Я действительно предпочел бы не начинать упаковывать базовые API для Android, чтобы выполнять такие базовые тесты ...

Ответы на вопрос(1)

Ваш ответ на вопрос