【发布时间】:2016-07-13 15:20:24
【问题描述】:
使用 Xcode UI 测试,我想实现在应用程序中存在特定 UI 元素时运行的代码。我的应用程序处于登录状态,如果用户当前已登录,我想将其注销。我一直无法找到文档来建议摆脱这个纸袋的方法。
我读过的所有内容都显示了两种可能的路径:使用XCTAssert(如果元素不存在,这将导致我的测试立即失败)和使用XCTExpectation(如果元素不存在)。如果应用程序处于给定状态,我需要一种更简单的方法来运行不同的代码。
为了把它放在代码中,我正在寻找这样的东西:
if let signOutElement = app.collectionViews.staticTexts["Sign Out"] {
signOutElement.tap()
}
唉,这行不通。
【问题讨论】:
-
根据我的经验,测试通常是在相当严格的心态下完成的——你将应用程序置于你想要的状态,这样你就可以测试代码的特定部分。所以在这种情况下,您应该知道用户处于登录状态,因此需要注销。从理论上讲,您可以通过页面上的某种计时器来实现这一点,该计时器会经常触发并寻找注销,但同样不是您必须通过测试 imo 做的事情。
标签: ios swift xcode xcode-ui-testing