Mit Xcode UI Testing möchte ich Code implementieren, der ausgeführt wird, wenn ein bestimmtes UI-Element in der App vorhanden ist. Meine App hat einen eingeloggten Status und ich möchte den Benutzer abmelden, wenn er gerade angemeldet ist. Ich konnte keine Dokumentation finden, die einen Ausweg aus dieser Papiertüte vorschlägt.Xcode-UI-Test: Bedingter Test ausführen
Alles, was ich gelesen habe, zeigt zwei mögliche Wege: mit XCTAssert
(das wäre meinen Test führt sofort zum Scheitern verurteilt, wenn das Element nicht vorhanden war) und mit XCTExpectation
(was meinen Test zu Zeit führen würde, wenn das Element weren‘ t Gegenwart). Ich brauche eine einfachere Möglichkeit, anderen Code auszuführen, wenn sich die App in einem bestimmten Status befindet.
Um es in Code zu setzen, ich bin für so etwas wie folgt aussehen:
if let signOutElement = app.collectionViews.staticTexts["Sign Out"] {
signOutElement.tap()
}
Ach, das funktioniert nicht.
Meiner Erfahrung nach werden Tests in der Regel mit einem ziemlich starren Geisteszustand durchgeführt - Sie versetzen die App in den gewünschten Zustand, damit Sie bestimmte Teile des Codes testen können. In diesem Fall sollten Sie wissen, dass sich der Benutzer in einem eingeloggten Zustand befindet und somit abgemeldet werden muss. Sie könnten dies theoretisch mit einer Art Timer auf der Seite erreichen, die öfters abfeuert und nach einem Abmelden sucht, aber wiederum nicht etwas, was Sie unbedingt durch Test-Imo tun müssten. –