Qualcuno ha provato a includere dati fittizi con i nuovi test dell'interfaccia utente Xcode 7?Come simulare i dati in UITest su Xcode 7?
- Hai utilizzato un framework specifico?
- Come hai gestito gli obiettivi?
Qualcuno ha provato a includere dati fittizi con i nuovi test dell'interfaccia utente Xcode 7?Come simulare i dati in UITest su Xcode 7?
Penso che ci siano molti modi per avvicinarsi a questo - la difficoltà è che Apple ha intenzionalmente progettato UITest per funzionare completamente separato dall'app sotto test. Detto questo, ci sono alcuni ganci che puoi utilizzare per coordinare la logica nell'app con la logica dei test per inserire dati falsi o modificare il comportamento della tua app in qualsiasi modo. I due che ho trovato più utili sono launchEnvironment
e launchArguments
.
nel test - XCUIApplication().launchArguments
corrisponde a NSProcessInfo.processInfo().arguments
nel codice dell'app
allo stesso modo: XCUIApplication().launchEnvironment
->NSProcessInfo.processInfo().environment
launchEnvironment è un dizionario dritto in avanti, mentre lanciare argomenti è un array. Nel tuo test è possibile alimentare tutti i valori che ti piace in uno di questi parametri prima si avvia l'applicazione:
let app = XCUIApplication()
app.launchEnvironment["-FakedFeedResponse"] = "success.json"
app.launch()
Poi, nel tuo logica dell'applicazione è possibile attivare questi valori come più vi piace. Qualcosa di simile:
func fetchFeed() -> JSON {
if let fakedJSONFilename = NSProcessInfo.processInfo().environment["-FakedFeedResponse"] {
let fakePayload = fakeDataFileNamed(fakedJSONFilename)
return fakePayload
} else {
//Make network call and return a real JSON payload
}
}
Utilizzando questo modello di dati falsi/finte dovranno essere file inclusi come membri del bersaglio app.
Grazie! Ho appena trascorso diverse ore a cercare di passare argomenti nel target dell'app e questo ha fatto il trucco. – rob