Android: Unit Testen eines Dienstes

8

Ich versuche gerade eine Android App mit TDD zu schreiben. Mir wurde der Auftrag gegeben, einen Service zu schreiben, der in der Anwendung sehr wichtig ist.

Aus diesem Grund versuche ich einen richtigen Test für den Dienst zu schreiben. Die Android-Richtlinien geben Folgendes an:

  

Das Thema Was Sie testen sollten, enthält allgemeine Überlegungen zum Testen von Android-Komponenten. Hier sind einige spezifische Richtlinien zum Testen eines Dienstes:

     
  • Stellen Sie sicher, dass onCreate () als Reaktion auf Context.startService () oder Context.bindService () aufgerufen wird. In ähnlicher Weise sollten Sie sicherstellen, dass onDestroy () als Reaktion auf Context.stopService (), Context.unbindService (), stopSelf () oder stopSelfResult () aufgerufen wird.   Testen Sie, dass Ihr Dienst mehrere Aufrufe von Context.startService () korrekt verarbeitet. Nur der erste Aufruf löst Service.onCreate () aus, aber alle Aufrufe lösen einen Aufruf von Service.onStartCommand () aus.

  •   
  • Denken Sie außerdem daran, dass startService () - Aufrufe nicht verschachtelt werden. Daher wird ein einzelner Aufruf von Context.stopService () oder Service.stopSelf () (aber nicht von stopSelf (int)) den Dienst stoppen. Sie sollten testen, dass Ihr Dienst an der richtigen Stelle stoppt.

  •   
  • Testen Sie jede Geschäftslogik, die Ihr Service implementiert. Die Geschäftslogik umfasst die Überprüfung auf ungültige Werte, finanzielle und arithmetische Berechnungen usw.

  •   

Quelle: Service Testing | Android Entwickler

Ich habe noch einen richtigen Test für diese Lebenszyklus-Methoden gesehen, mehrere Aufrufe von Context.startService () usw. Ich versuche das herauszufinden, aber ich bin momentan ratlos.

Ich versuche, den Dienst mit der ServiceTestCase-Klasse zu testen:

%Vor%

Komme ich das falsch an? Soll ich einen Aktivitätstest verwenden, um die Bindung des Dienstes zu testen?

    
Orion 31.03.2014, 07:52
quelle

1 Antwort

5

Theres ein Beispiel mit JUnit 4 :

Service:

%Vor%

Test:

%Vor%     
Caipivara 06.07.2015 18:30
quelle