2017-01-31 7 views
1

Ich bin konfrontiert mit this Problem, im Grunde die ServiceTestRule löst eine TimeoutException, wenn StartService in einem ungebundenen Dienste aufgerufen wird, und möchte wissen, ob jemand eine mögliche Problemumgehung kennt, bis ein Update veröffentlicht wird ?ServiceTestRule # startService Timeout für ungebundene Dienste

Die ungebundene Serviceklasse:

public class UnboundService extends Service { 
    @Override 
    public IBinder onBind(Intent intent) { 
     return null; 
    } 
} 

Die Testklasse:

@RunWith(AndroidJUnit4.class) 
@MediumTest 
public class UnboundServiceTest { 
    @Rule 
    public final ServiceTestRule serviceRule = new ServiceTestRule(); 

    @Test 
    public void worksAsStartedService() throws TimeoutException { 
     Intent intent = new Intent(InstrumentationRegistry.getTargetContext(), UnboundService.class); 
     serviceRule.startService(intent); 
    } 
} 

Antwort

0

Versuchen Sie folgendes:

@Rule 
public final ServiceTestRule mServiceRule = ServiceTestRule.withTimeout(60L, TimeUnit.SECONDS); 
+0

Das Problem ist nicht im Zusammenhang mit der Zeitüberschreitung aber, dass die Umsetzung der 'startService' versucht," an den gestarteten Dienst zu binden, um zu gewährleisten, dass er gestartet und vor der Testausführung verbunden ist ". Überprüfen Sie, wie "ServiceTestRule" implementiert wurde. Sie rufen 'bindServiceAndWait' auf, aber da es sich um einen ungebundenen Dienst handelt, bindet es niemals. –

Verwandte Themen