Unit testing Activity.startService () call?

Intento escribir mi primera aplicación de Android por TDD (he escrito algunas pequeñas aplicaciones de Android sin TDD, así que estoy familiarizado con el entorno), pero parece que no puedo entender cómo escribir mi primera prueba .

El escenario

Tengo una actividad, TasksActivity, y un servicio, TasksService. Necesito probar que TasksActivity inicia TasksService en su método onStart ().

La prueba que he escrito es esta:

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());
}           
}

En mi método onCreate () en TasksActivity tengo:

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

También he intentado

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

Pero en ninguno de los casos se llama al método startService de mi MockContext. ¿Hay alguna manera de configurar la intercepción de este método? Realmente prefiero no tener que comenzar a ajustar las API básicas de Android para realizar pruebas tan básicas ...

Respuestas a la pregunta(2)

Su respuesta a la pregunta