Esiste un modo per simulare le richieste durante la scrittura di test dell'interfaccia utente automatizzati in Swift 2.0. Per quanto ne so, i test dell'interfaccia utente dovrebbero essere indipendenti da altre funzionalità. C'è un modo per deridere la risposta dalle richieste del server al fine di testare il comportamento dell'interfaccia utente dipendente dalla risposta. Ad esempio, se il server non è attivo, i test dell'interfaccia utente dovrebbero comunque essere eseguiti. Esempio rapido, per l'accesso, simulazione se la password non è riuscita, l'interfaccia utente dovrebbe mostrare avviso, tuttavia, se l'accesso è riuscito, dovrebbe essere visualizzata la pagina successiva.Richieste API simulate Xcode 7 Swift Test UI automatizzato
risposta
Nella sua attuale implementazione, questo non è direttamente possibile con Test UI. L'unica interfaccia che il framework ha direttamente sul codice è attraverso il suo launch arguments/environment.
È possibile fare in modo che l'app cerchi una chiave o un valore specifico in questo contesto e attiva alcune funzionalità. Ad esempio, se è stata impostata la chiave MOCK_REQUESTS
, iniettare uno MockableHTTPClient
anziché il reale HTTPClient
nel proprio livello di rete. Ho scritto su setting the parameters e NSHipster ha un articolo su how to read them.
Anche se non è l'ideale, è tecnicamente possibile eseguire ciò che stai cercando con un po 'di legwork.
Ecco un tutorial on stubbing network data for UI Testing che ho messo insieme. Ti guida attraverso tutti i passaggi necessari per ottenere questo attivo e funzionante.
Se si è preoccupati dell'idea che i mock possano trasformarsi in un ambiente di produzione per qualsiasi motivo, è possibile considerare l'utilizzo di una soluzione di terze parti come Charles Proxy.
Utilizzando lo strumento della mappa locale è possibile instradare le chiamate da un endpoint specifico a un file locale sulla macchina. È possibile superare il testo normale nel file locale contenente la risposta che si desidera che restituisca. Per il tuo esempio:
Nome utente colpisce endpoint yoursite.com/login
a Charles si utilizza lo strumento locale mappa è possibile instradare le chiamate colpire quel punto finale a un file salvato sul computer cioè mappedlocal.txt
mappedlocal.txt contiene il seguente testo
HTTP/1.1 404 Impossibile
Quando Charles è in esecuzione e si preme questo endpoint vostra risposta tornerà con un errore 404.
Puoi anche usare un'altra opzione in Charles chiamata "map remote" e creare un intero server simulato in grado di gestire chiamate e risposte come desideri. Questo potrebbe non essere esattamente quello che stai cercando, ma è un'opzione che può aiutare gli altri, e quello che uso io stesso.
- 1. Test UI Web automatizzato
- 2. Come accedere alla stringa localizzata durante il test dell'interfaccia utente automatizzato in Xcode 7?
- 3. Test UI XCode 7- non può accedere all'elemento nella sottoview
- 4. Xcode 7 Test UI, il pulsante di registrazione è disattivato
- 5. Impossibile accedere alle localizzazioni stringa in UI Test (Xcode 7)
- 6. Caratteri Swift personalizzati Xcode 7
- 7. Identifica test UI Swift stato selezionato
- 8. UITableViewCell Errore Xcode 7/Swift 2
- 9. dispatch_async() con throwables swift 2 Xcode 7
- 10. Test UI Swift Trova UIView personalizzato XCUIElement
- 11. Test UI Xcode con sistema di login
- 12. Mocking di oggetti con Xcode 7 UI Automation
- 13. Cosa sono le "richieste HTTP simulate da IIS"?
- 14. Aggiunta di test di unità e UI a un progetto esistente in Xcode 7
- 15. Xcode 7 UI Test delle impostazioni locali e regionali della destinazione
- 16. Test UI Xcode 7 non riescono con "Tempo scaduto in attesa del completamento dell'evento chiave"
- 17. Test UI XCode 7 - Impossibile digitare il testo nella barra di ricerca
- 18. Come ottenere riferimenti a TextField in UI Test in Xcode 7
- 19. Autenticazione server in Swift 2.0 e XCode 7 interrotta
- 20. Alamofire Swift 2 - non è possibile inviare per il beta test (Xcode 7 GM)
- 21. Richieste HTTP in Swift 3
- 22. Includere una dipendenza da test dell'interfaccia utente Xcode 7 tramite Cocoapods?
- 23. Xcode 7 non mostra i chiamanti funzione per swift 2
- 24. AVAudioPlayer non funziona più a Swift 2.0/Xcode 7 beta
- 25. Xcode 7 Dimensioni dell'archivio grande
- 26. Esiste un #ifdef per distinguere tra Xcode 6.4 e Xcode 7 beta in Swift?
- 27. Test UI Xcode - Errore corrispondenza evento con data e ora
- 28. Test UI non funzionano più su Xcode 7.3
- 29. Xcode 7 GM mancante simulatori iOS 7
- 30. UIModalPresentationStyle.CurrentContext Swift iOS 7
Aggiunti alcuni tag più appropriati. – Liam
Penso che @JoeMasilotti sia corretto. Sarei un po 'preoccupato di includere i mock, tuttavia, nel mio codice di produzione. –
Si potrebbe voler controllare SBTUITestTunnel, che può tornare utile per iniettare dinamicamente i dati dal codice di prova al codice dell'app. Vedi la mia risposta [qui] (http://stackoverflow.com/questions/36768883/how-do-i-mock-network-requests-in-xcode-ui-tests-while-the-tests-are-running/36909859 # 36909859) –