2016-07-29 9 views
0

Ich habe in meinem Anmeldeformular eine Drittanbieterbibliothek verwendet, um ein Bild aus der Galerie auszuwählen. Mein Anmeldeformular funktioniert gut. Jetzt möchte ich es mit Espresso testen. Das größte Problem, mit dem ich derzeit konfrontiert bin, ist, wie man die Bildansicht des Profilfotos während des Testens einstellt.Wie wird das Bild in der Bildansicht beim Testen mit Espresso eingestellt?

+0

Welche Bibliothek verwenden Sie? Was ist genau das Problem? Was hast du bisher versucht? Wie wird das Profilbild festgelegt, wenn es nicht in Tests ist? – thaussma

Antwort

0

Sie sollten espresso-intents verwenden, um diese Absicht der Kamera zu erkennen und ein Bild zu erstellen.

Hier haben Sie die Methode, die ich verwenden:

public static void simulatePictureFromCameraRoll(Uri pictureUri) throws Exception { 
    Exception returnException = null; 
    Intent resultData = new Intent(); 

    resultData.setData(pictureUri); 

    Intents.init(); 
    try { 
     Matcher<Intent> expectedIntent = hasAction(Intent.ACTION_GET_CONTENT); 
     intending(expectedIntent).respondWith(new Instrumentation.ActivityResult(Activity.RESULT_OK, resultData)); 
     onView(withId(R.id.lytProfImageChooseFromLibrary)).perform(click()); 
     intended(expectedIntent); 
    } 
    catch (Exception e) { 
     returnException = e; 
    } 
    finally { 
     Intents.release(); 
    } 

    if (returnException != null) { 
     throw returnException; 
    } 
} 

Hoffnung, das hilft.

+0

Ich erfasse die Ausnahme, weil es wichtig ist, sicherzustellen, dass die Intents.release erledigt ist oder Sie Probleme haben, wenn Ihre Tests die Intents.init mehrmals aufrufen – jeprubio

Verwandte Themen