2016-07-20 33 views
0

Ist es möglich, das Ergebnis einer Benutzeraktion mit automatisierten Test in IOS zu testen? Zum Beispiel, wie kann ich überprüfen, ob die App eine Datei erstellt hat, wenn der Benutzer auf Speichern geklickt hat. Ich habe Appium und Apple-gemacht XCUITesting versucht, aber ich kann es nicht herausfinden.User Interface Ergebnis Test

Antwort

0

Mit Apples XCUITesting läuft die Test App in einem separaten Prozess und hat keinen direkten Zugriff auf die Sandbox Ihrer App. Wenn die Benutzeroberfläche der App also keine visuelle Rückmeldung gibt, dass die Datei erstellt wurde, kann sie nicht überprüft werden die offiziellen Werkzeuge.

Sie könnten SBTUITestTunnel (Disclaimer, ich bin der Autor der Bibliothek), die UI Tests Fähigkeiten erweitert ermöglicht so einen Test zu schreiben. Unter der Annahme, für die Ex, dass Ihr App speichert ein test_file.txt im Dokumentordner Anwendungen, die Sie den folgenden Test schreiben können.

func testThatFileExistsAfterTap() { 
    // launch app 
    app = SBTUITunneledApplication() 
    app.launchTunnelWithOptions([SBTUITunneledApplicationLaunchOptionResetFilesystem]) { 
     // do additional setup before the app launches, if needed 
    } 

    app.buttons["action"].tap() // button that triggers file save 

    // add some expectation on the UI to wait for the write to complete (UIActivity indicator, etc) 

    let fileData = app.downloadItemFromPath("test_file.txt", relativeTo: .DocumentDirectory) 

    // XCTAssert() that fileData contains the expected data 
} 

Hinweis, wie Sie die SBTUITunneledApplicationLaunchOptionResetFilesystem passieren können, die das Dateisystem des App setzt auf Anfang. Mit dieser Option können Sie einen Test schreiben, der unabhängig von vorherigen Sitzungen ist.

+0

Könnten Sie mir bitte damit helfen, habe ich die Dateien zum Projekthandbuch hinzugefügt und das Ziel in jeder Datei gewählt, aber das Gebäude schlägt immer mit Fehler: Linker Befehl fehlgeschlagen, Symbol nicht für Architektur arm64 gefunden, also ich kann den Tunnel in der App nicht starten. –

+0

Haben Sie versucht, CocoaPods zu verwenden? Es ist bei weitem der einfachste Weg, die Bibliothek hinzuzufügen. –

+0

Entschuldigung, dass ich so ein Idiot bin, aber ich kann es einfach nicht funktionieren lassen. Ich habe es mit CocoaPods versucht, die Pod-Datei installiert (ich habe die im Beispielprojekt verwendet, aber die Ziele neu geschrieben), dann den von CocoaPods generierten Arbeitsbereich benutzt und bin hier geblieben. –