È ansible fare richieste di http reale con robolectric

Il problema che ho con robolectric è che non rende reale HttpRequests.

Posso sostituire l'implementazione di HttpClient di robolectric utilizzando un vero e proprio effettivo che effettua le chiamate al mio server di test locale?

  • Come contare le righe in txt di android
  • SIGNAL FATAL 11 (Sigsegv) a 0x00000000 (codice = 1)?
  • Il button AlertDialog non funziona e non si elimina
  • Spiegazione del metodo getPixels per una Bitmap in Android
  • Risorse Robolectric di Gradle NotFoundException nel test
  • Come ricevere un evento sulla casella di controllo android controlla la modifica?
  • 2 Solutions collect form web for “È ansible fare richieste di http reale con robolectric”

    Jan Berkel ha presentato una richiesta di tiro a Robolectric che è stata fusa nel master l'8 marzo. Ora puoi call Robolectric.getFakeHttpLayer().interceptHttpRequests(false); all'inizio del tuo test per aggirare il strato derivati ​​da http in Robolectric.

    È ansible scaricare il jar direttamente da Sonatype per includere nel tuo progetto Android Eclipse. Se si utilizza Maven e 1.1 non è ancora stato rilasciato (controllare all'url Sonatype sopra), allora è necessario aggiungere il repo snapshot del sonatype e utilizzare il 1.1 roulettico-SNAPSHOT. Puoi farlo aggiungendo quanto segue al tuo pom.xml

     <repositories> <repository> <id>sonatype-snapshots</id> <name>Sonatype Snapshots</name> <layout>default</layout> <url>https://oss.sonatype.org/content/repositories/snapshots</url> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories> ... <dependencies> <dependency> <groupId>com.pivotallabs</groupId> <artifactId>robolectric</artifactId> <version>1.1-SNAPSHOT</version> <scope>test</scope> </dependency> ... </dependencies> 

    Sto usando questo per il test di integrazione che funziona contro un server reale e funziona bene.

    Fondamentalmente non lo fai. Robolectric è un quadro di prova e questo è il modo in cui è stato progettato per lavorare, quello che hai chiesto non è quello che facciamo con Robolectric.

    Sono sicuro che sei venuto attraversare questo blog prendendo circa utilizzando le richieste HTTP HTTP test Robolectric. In realtà il titolo "Come testare le richieste HTTP" non è IMO abbastanza preciso. Preferisco chiamarlo "Come sbarrare le richieste HTTP" , come è stato detto in questo blog, il posto migliore per utilizzare Robolectric mock http è where non si desidera veramente preoccuparsi di chiamate di networking reali a server remoto forse durante lo sviluppo / test di progetto fase.

    Supponiamo che abbia un'attività principale connessa al mio conto bancario per qualche operazione, il button di invio dovrebbe submit le mie informazioni di input all'aggiornamento del server remoto informazioni sul mio account, quindi sulla base di diverse risposte mi portno a diverse attività. Ho scritto tutto il codice senza problemi, HttpClient, forma con button di invio, nuovo intento alla prossima attività, ecc. Tutto bello e pulito. Giusto, come posso testare quando il button di scatto Invia, l'attività corretta viene aperta in base a quelle diverse risposte, senza necessità di cambiare il codice sorgente di attività o utilizzare una chiamata di networking reale per avvitare il mio conto bancario reale. La risposta è Robolectric mock http request. Il punto chiave per l'utilizzo di Robolectric in questo caso non è quello di testare la richiesta reale di http, ma viene utilizzata per ingannare il mio codice httpClient e testare un'altra parte del mio codice applicativo come un file UI. In definitiva, il vero test di networking dovrebbe essere eseguito su emulatore o un dispositivo reale in un momento in cui la distribuzione viene in uno stato stabile stabile.

    Un altro vantaggio rivenduto dalla squadra di Robolectirc è che non è necessario eseguire test di strumentazione su emulatore o dispositivo, che è inefficiente e rallenta lo sviluppo di applicazioni / il ciclo di vita dei test.

    L'Android è un fan Android di Google, tutto su telefoni Android, Android Wear, Android Dev e applicazioni Android Games e così via.