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

bre*_*top 4 ui-testing ios swift xcode7 xcode-ui-testing

我去了一个非常简单的计算器,我试图测试一个标签是否在点击按钮时更新.

我的测试方法如下所示:

let app = XCUIApplication()
app.buttons["9"].tap()
Run Code Online (Sandbox Code Playgroud)

我可以直观地看到标签正在更新,但我不确定如何测试它.

我想我需要使用XCUIElementQueryAPI来查询标签,然后断言标签文本已经改变.我只是不确定该怎么做.

我不确定以下问题:

  • 我是否需要知道标签能够查询的值是什么?
  • 是否有一种方法可以在不知道应用程序启动时的值是什么时查询标签?

Joe*_*tti 7

使用UI测试,您可能需要稍微改变一下您的问题.而不是断言某些事情发生变化,检查新事物是否存在.

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

因此,在您的示例中,您可以执行以下操作.这将检查当您点击"9"按钮时,会出现带有文本"42"的标签.

let app = XCUIApplication()
app.buttons["9"].tap()
XCTAssert(app.staticTexts["42"].exists)
Run Code Online (Sandbox Code Playgroud)


小智 5

我会说你设置了不同的accessibilityLabelaccessibilityIdentifier你要点击的按钮,然后比较之前和之后的值,tap()并检查是否label已使用XCTAssertNotEqual断言更改,

在应用程序代码中:

button.accessibilityIdentifier = "TappableButton"

然后在测试文件中:

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