Ich verwende Swift für eine Xcode UI Test App. Unsere Anwendung im Test erscheint manchmal eine "Alert Box", die den normalen Arbeitsablauf des Testfalls beeinflusst. Es gibt keine Möglichkeit vorherzusagen, wann das Popup erscheinen würde. Es kann bei Testfall 1 oder Testfallnummer x auftreten.Swift ASYNC Ereignisbehandlung mit Xcode UI Test
Ich wollte die "Alert Box" und mit dem Rest des Testfalles weitermachen. Wie handhabe ich ähnliche Ereignisse von ASYNC nature mit swift XCUITest Framework, ohne den normalen Ablauf des Testfalls zu beeinflussen?
Bisher habe ich gefunden:
expectationForPredicate(exists, evaluatedWithObject: alertbox, handler: nil)
waitForExpectationsWithTimeout(300, handler: nil)
Dies aus zwei Gründen nicht möglich ist.
- Timeout kann nicht vorhergesagt werden
fließen Testfall
func testTestCase1 { let expectation = expectationWithDescription("Alert Found! Dismissing") do { // ... // test steps // ... expectation.fulfill() } waitForExpectationsWithTimeout(300) { dimissAlert() } }
ref1 blockiert: https://www.bignerdranch.com/blog/asynchronous-testing-with-xcode-6/
Ref2: XCTest and asynchronous testing in Xcode 6
Ref3: https://adoptioncurve.net/archives/2015/10/testing-asynchronous-code-in-swift/
Gibt es eine allgemeine Möglichkeit, asynchrone Ereignisse in der gesamten Suite zu behandeln? Wie kann ich mit dem Testen fortfahren, während ein anderer Thread auf das Ereignis "Alert Box" wartet?
Prost!