使用XCTest UI测试确定应用是否已退出

时间:2015-11-17 16:09:00

标签: ios swift xctest

如果构建被视为无效(过期等),我的iOS Swift应用程序中的某个功能将退出该应用程序。

如何使用XCTest确定应用是否已成功退出并将模拟器返回主屏幕?

我尝试过像

这样的明显方法
XCTAssertFalse(XCUIApplication().exists, "app should have quit")

XCTAssertFalse(XCUIApplication().enabled, "app should have quit")

如果我尝试在XCUIApplication上执行任何操作,它就会挂起。

1 个答案:

答案 0 :(得分:1)

您可以在NSNotificationCenter UIApplicationDidEnterBackgroundNotification注册一个观察者,在测试中,如果发现版本已过期,请进行测试例外:

let expectation = expectationWithDescription("myDescription")

waitForExpectationsWithTimeout(10) { error in
}

并在您的通知处理程序中:

func someHandler() {
    expectation.fulfill()
    //unregister the observer
}

如果发布通知,则会满足期望,否则测试将失败。如果构建已过时,请务必仅设置此案例,否则如果通知未发布,则始终会失败。