Ant*_*nus 6 unit-testing ios swift xcode-ui-testing swift3
这是我到目前为止所做的,我只是想在标签中输出结果并根据设置结果进行测试:
func testExample() {
let app = XCUIApplication()
let enterRomanNumeralsHereTextField = app.textFields["Enter roman numerals here"]
enterRomanNumeralsHereTextField.tap()
let convertButton = app.buttons["Convert"]
//1
enterRomanNumeralsHereTextField.typeText("LL")
convertButton.tap()
XCTAssertTrue(app.staticTexts.element(matching:.any, identifier: "Roman Numerals").label == "NotValidRomanNumber")
//2
enterRomanNumeralsHereTextField.typeText("LXXXIX")
convertButton.tap()
XCTAssertEqual(app.otherElements.containing(.staticText, identifier:"Roman Numerals").element.value as! String, "89")
//3
enterRomanNumeralsHereTextField.typeText("")
enterRomanNumeralsHereTextField.typeText("LXXVIII")
convertButton.tap()
XCTAssertEqual(app.otherElements.containing(.staticText, identifier:"Roman Numerals").element.value as! String, "")
// Use recording to get started writing UI tests.
// Use XCTAssert and related functions to verify your tests produce the correct results.
}
Run Code Online (Sandbox Code Playgroud)
第一次尝试(标记为1)给出了一个构建错误,指出"无法调用非函数类型XCUIElement的值.第二次尝试构建但测试失败,因为即使标签确实产生了正确的值,测试也会将标签读取为空白让我们第三次尝试通过了测试,因为我将它与空白标签进行了比较,这就是它的显示效果.
因此,正如我上面所说,我只是想知道如何检索由"计算"或按钮按下的标签值.
joe*_*ern 15
不幸的是,当UILabel在UITest被访问XCUIElement的value属性没有设置与text财产UILabel.它总是空的.
XCUIElement还有一个label属性,您可以用于您的目的.你只需要确保你没有设置accessibilityLabel你的UILabel.accessibilityIdentifier改为使用:
在您的应用中:
label.accessibilityIdentifier = "Roman Numerals"
Run Code Online (Sandbox Code Playgroud)
在你的UITest中:
XCTAssertEqual(app.staticTexts.element(matching:.any, identifier: "Roman Numerals").label, "89")
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3552 次 |
| 最近记录: |