2017-05-10 7 views
0

Ich muss folgenden Szenario mit Swift und XCTestCase auf iOS-Simulator automatisieren.iOS XCTestCase zu starten, einige Aktionen ausführen, die App beenden und App neu starten

  • Schritt 1: die App starten
  • Schritt 2: Performa einige Aktionen auf dem App
  • Schritt 3: Töten Sie die App
  • Schritt 4: die App erneut starten und prüfen, ob die durchgeführten Aktionen persistent

Ich fand in einer unserer Fragen, das folgende Snippet zu verwenden.

XCUIDevice.shared().press(XCUIDeviceButton.home) 
    sleep(60) 
    XCUIDevice.shared().siriService.activate(voiceRecognitionText: "Open {appName}") 

Es hat nicht für mich funktioniert, kann jemand bitte einen anderen Ansatz vorschlagen.

Dank,

+0

Sie machen Komponententests, oder? Wenn ja, können Sie für diesen speziellen Test zu Xcode * UI-Tests * wechseln? –

Antwort

2

starten oder Relaunches Verwendung launch:

XCUIApplication().launch() 

terminate() Anwendung verwenden, um zu beenden. Aber nach den documentation:

Wenn die Anwendung bereits ausgeführt wird, wird dieser Aufruf die vorhandene Instanz beenden, einen sauberen Start Zustand für die neu gestartete Instanz zu gewährleisten.

In Kürze. Ihr Test könnte wie folgt aussehen:

XCUIApplication().launch() 
// some actions 
XCUIApplication().launch() 
// some action 
+0

Schöne Antwort! Aber ich glaube, das würde nur funktionieren, wenn er UI-Tests (und nicht Unit-Tests) verwendet, oder? –

+0

Ja. Dies funktioniert nur mit dem UI-Test. Ich bezweifle, dass es mit Unit-Tests gemacht werden könnte. –

Verwandte Themen