Xcode UI测试:有条件地执行测试

时间:2016-07-13 15:20:25

标签: ios swift xcode xcode-ui-testing

使用Xcode UI测试,我想实现在应用程序中存在的特定UI元素时运行的代码。我的应用程序已登录状态,如果用户当前已登录,我想将用户注销。我一直无法找到文档来建议退出此文件包。

我读过的所有内容都显示了两条可能的路径:使用XCTAssert(如果元素不存在会导致我的测试立即失败)并使用XCTExpectation(这将导致我的测试如果元素不存在则超时)。如果应用程序处于给定状态,我需要一种更简单的方法来运行不同的代码。

要把它放在代码中,我正在寻找这样的东西:

if let signOutElement = app.collectionViews.staticTexts["Sign Out"] {
    signOutElement.tap()
}

唉,这不起作用。

1 个答案:

答案 0 :(得分:5)

在测试期间使用条件没有任何问题。代码的问题在于从Swift的角度来看这是无稽之谈; if let在这里没有意义,因为你的表达式不返回Optional。毕竟,你仍然必须谈论合法的Swift。

为什么不尝试这样的事情?

if app.collectionViews.staticTexts["Sign Out"].exists