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

Xcode UI Testing: Executing a Test Conditionally

使用 Xcode UI 测试,如果应用程序中存在特定的 UI 元素,我想实现 运行s 的代码。我的应用程序处于登录状态,如果用户当前已登录,我想注销他们。我一直无法找到文档来建议摆脱这个纸袋的方法。

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

为了将其放入代码中,我正在寻找这样的东西:

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

唉,这不行。

在测试期间使用条件语句没有任何问题。您的代码的问题在于,从 Swift 的角度来看,它是无稽之谈; if let 在这里没有意义,因为您的表达式没有 return 可选。毕竟,你还是要谈法律 Swift。

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

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