2014-10-20 11 views
6

Wir haben derzeit eine Android-Anwendung, die wir mit Espresso testen. Eine der Funktionen, die wir testen möchten, ist die Auswahl eines Bildes aus der lokalen Bildergalerie. Wir können den vollständigen Aufruf der Galerie-Ansicht erreichen, können dann jedoch im sich öffnenden Fenster nicht aus "Neu", "Downloads" und "Galerie" auswählen. Ein Ausschnitt, wie wir so weit gekommen sind, ist unten aufgeführt.So klicken Sie auf Android Gallery mit Espresso

public void testShouldBeAbleToSelectPhotoFromGallery() { 

    getActivity(); 

    // given 
    onView(withId(launch_gallery_button)).perform(click()); 
    onView(withText("Gallery")).perform(click()); // this is a button in our app 
    // then we get stuck :(
} 

Vielen Dank!

Antwort

4

Dies ist weder mit Robotium noch mit Espresso möglich, da sie nur auf Aktivitäten der zu testenden App funktionieren.

Um Integrationstests zu schreiben, die über verschiedene Apps und integrierte Android-Apps hinweg funktionieren, können Sie das von Google bereitgestellte UiAutomator framework verwenden.

Grundsätzlich würden Sie die Galerie-App in der uiautomatorview analysieren, um zu lernen, wie Sie die ui-Elemente auswählen, die Ihr Testfall benötigt, und dann darauf reagieren, ähnlich wie Espresso.

+0

danke begann mit uiAutomator zu spielen. Es sieht viel vielversprechender aus. – user3298441

2

Wenn Sie diese Funktionalität in Ihrer App testen möchten, sollten Sie die Absichtsspottfunktion in Espresso verwenden. Espressotests sollten Ihre App nicht verlassen. Stattdessen fangen Sie die Absicht ein, die Sie verwenden, um die Galerie-App zu öffnen und ein Ergebnis zurück an Ihre App zu senden. Während des Tests bleiben Sie in Ihrer App, Sie erhalten sofort ein Ergebnis.

Um dies zu überprüfen, überprüfen Sie die intending und intended Apis von Espresso.

Here is a tutorial by Pengj, um Sie mit beabsichtigten Spott Bekanntschaft zu machen. Das Tutorial erwähnt Mockito, aber Sie können es ohne es perfekt verwenden.

Verwandte Themen