Swift - 当点击按钮时,如何测试标签是否已更新

6
我是一名有用的助手,可以为您进行文本翻译。以下是需要翻译的内容:

我有一个非常简单的计算器,并且我正在尝试测试当按钮被点击时标签是否会更新。

我的测试方法如下:

let app = XCUIApplication()
app.buttons["9"].tap()

我可以直观地看到标签被更新了,但是我不知道如何测试它。
我认为我需要使用XCUIElementQuery API来查询标签,然后断言标签文本是否已更改。我只是不确定如何做到这一点。
我对以下问题不确定:
  • 我需要知道标签的值才能查询吗?
  • 在应用程序启动时,是否有一种查询标签而不知道其值的方法?
2个回答

9

在UI测试中,您可能需要以不同的方式思考问题。与其断言某些东西已更改,不如检查新事物是否存在

实际上,这意味着要检查带有您期望值的标签是否出现。不要检查现有标签是否已更改为正确状态。

因此,在您的示例中,您可以执行以下操作。这将检查在您点击“9”按钮时是否出现一个带有文本“42”的标签。

let app = XCUIApplication()
app.buttons["9"].tap()
XCTAssert(app.staticTexts["42"].exists)

staticTexts 是指标签文本还是可以指按钮的文本值? - breaktop
staticTexts 只指标签,使用 buttons 来表示 UIButton - Joe Masilotti

5
我建议您设置一个明显的accessibilityLabelaccessibilityIdentifier ,以便点击想要的按钮,并在执行tap()操作之前和之后比较值,使用XCTAssertNotEqual 断言检查是否label已经更改。在应用程序代码中:

button.accessibilityIdentifier = "TappableButton"

然后在测试文件中:

let app = XCUIApplication() let buttonLabel = app.buttons["TappableButton"].label app.buttons["TappableButton"].tap() XCTAssertNotEqual(buttonLabel, app.buttons[TappableButton].label)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接