Имитация восстановления состояния приложения XCUITest начиная с iOS 17. ⇐ IOS
-
Гость
Имитация восстановления состояния приложения XCUITest начиная с iOS 17.
После перехода на iOS 17.4 я больше не могу изменить состояние своего приложения на .runningBackgroundSuspended. До сих пор я использовал XCUIApplication(waitForState:timeout:) и нажимал кнопку «Домой», чтобы перевести приложение в приостановленное состояние, а затем выполнял перезапуск приложения (см. Мой код ниже).
Мой вопрос: как вы имитируете восстановление состояния приложения в своих приложениях?
XCUIDevice.shared.press(XCUIDevice.Button.home) let goIntoBackground = app.wait(для: .runningBackgroundSuspended, таймаут: таймаут) если !wentIntoBackground { XCTFail("Приложение не было отправлено в фоновый режим, состояние: \(app.state)") вернуть ложь } приложение.прекратить() let appTermination = app.wait(для: .notRunning, таймаут: таймаут) если !appTerminate { XCTFail("Приложение не было закрыто, состояние: \(app.state)") вернуть ложь } приложение.активировать() let startAgain = app.wait(для: .runningForeground, таймаут: таймаут) если !startedAgain { XCTFail("Приложение больше не запускалось, состояние: \(app.state)") вернуть ложь }
После перехода на iOS 17.4 я больше не могу изменить состояние своего приложения на .runningBackgroundSuspended. До сих пор я использовал XCUIApplication(waitForState:timeout:) и нажимал кнопку «Домой», чтобы перевести приложение в приостановленное состояние, а затем выполнял перезапуск приложения (см. Мой код ниже).
Мой вопрос: как вы имитируете восстановление состояния приложения в своих приложениях?
XCUIDevice.shared.press(XCUIDevice.Button.home) let goIntoBackground = app.wait(для: .runningBackgroundSuspended, таймаут: таймаут) если !wentIntoBackground { XCTFail("Приложение не было отправлено в фоновый режим, состояние: \(app.state)") вернуть ложь } приложение.прекратить() let appTermination = app.wait(для: .notRunning, таймаут: таймаут) если !appTerminate { XCTFail("Приложение не было закрыто, состояние: \(app.state)") вернуть ложь } приложение.активировать() let startAgain = app.wait(для: .runningForeground, таймаут: таймаут) если !startedAgain { XCTFail("Приложение больше не запускалось, состояние: \(app.state)") вернуть ложь }
Мобильная версия