Программная отправка приложения в фоновый режим
есть ли способ отправить приложение в фоновом режиме? Аналогично тому, как вы можете вызвать XCUIApplication.terminate()
, У меня есть некоторые элементы пользовательского интерфейса для проверки на applicationDidBecomeActive(_:)
. Кто-нибудь знает, возможно ли это вообще?
3 ответов
Я бы рекомендовал проверить XCUIDevice
. Вот как вы можете нажать кнопку "Домой", а затем перезапустить приложение
func testExample() {
// Has a nav bar.
XCTAssert(XCUIApplication().navigationBars.element.exists)
XCUIDevice().press(XCUIDeviceButton.home)
// Before Swift 3: XCUIDevice().pressButton(XCUIDeviceButton.Home)
XCUIApplication().launch()
// Navigationbar still there on second launch.
XCTAssert(XCUIApplication().navigationBars.element.exists)
}
Я только что пытался UIApplication.sharedApplication().performSelector("suspend")
успешно.
dispatch_after(2, dispatch_get_main_queue(), {
// suspend the app after two seconds
UIApplication.sharedApplication().performSelector("suspend")
})
в Xcode 9.0, Apple представила XCUIApplication.activate()
. activate()
при необходимости запустит приложение, но не завершит его, если оно уже запущено. Таким образом:
func testExample() {
// Background the app
XCUIDevice().press(.home)
// Reactivate the app
XCUIApplication().launch()
}