使用Xcode UI测试,我想实现在应用程序中存在的特定UI元素时运行的代码。我的应用程序已登录状态,如果用户当前已登录,我想将用户注销。我一直无法找到文档来建议退出此文件包。
我读过的所有内容都显示了两条可能的路径:使用XCTAssert
(如果元素不存在会导致我的测试立即失败)并使用XCTExpectation
(这将导致我的测试如果元素不存在则超时)。如果应用程序处于给定状态,我需要一种更简单的方法来运行不同的代码。
要把它放在代码中,我正在寻找这样的东西:
if let signOutElement = app.collectionViews.staticTexts["Sign Out"] {
signOutElement.tap()
}
唉,这不起作用。
答案 0 :(得分:5)
在测试期间使用条件没有任何问题。代码的问题在于从Swift的角度来看这是无稽之谈; if let
在这里没有意义,因为你的表达式不返回Optional。毕竟,你仍然必须谈论合法的Swift。
为什么不尝试这样的事情?
if app.collectionViews.staticTexts["Sign Out"].exists