gpt4 book ai didi

xcode 7.3 UI 测试随机通过或失败

转载 作者:可可西里 更新时间:2023-11-01 01:35:54 26 4
gpt4 key购买 nike

我只是在练习 TDD,并为测试应用程序编写了一个非常简单的函数。用户界面很简单:它有一个最初以“0”作为标题的按钮。在我的 View Controller 中,我有一个局部变量“score”。每次我点击按钮时,它都会增加“分数”。按钮标题将更新为新的“分数”值。按钮 ui 更新逻辑在“score”的“didSet”属性观察器中。

除了 UI 测试,一切都很酷。我有两个 ui 测试功能,一个是点击按钮一次,另一个是点击按钮两次。现在奇怪的事情发生了。下面是我的两个 ui 测试函数的截图。

enter image description here

每次我运行测试时,有时两个函数都通过了,有时其中一个或两个函数失败了。错误始终显示为“aNumber 不等于 aNumber + 1”。看起来有一些响应时间问题。似乎 UI 更新比按钮标签结果检索慢得多。我不确定我是否在真正更新之前过早地获得了 button.label 的值。我是否应该更新 property observers 中的 UI?有什么办法可以通过ui测试吗?感谢您的帮助!

最佳答案

关于

both functions passed while sometimes one or two of them failed

UITest 在单独的进程中执行。所以如果按钮标题更新比 XCTAssert 慢,它将失败,因为将 oldValue 与预期值进行比较

点击按钮后等待正确测试

使用这个函数 waitForExpectationsWithTimeout(3,nil)

func testTapNumberButtonIncrementScore() {
let app = XCUIApplication()

app.buttons["numberButton"].tap()

waitForExpectationsWithTimeout(3, handler: nil)
XCTAssertEqual(app.buttons["numberButton"].title, "1")
}

func testTapNumberButtonTwiceIncrementTo2() {
let app = XCUIApplication()

app.buttons["numberButton"].tapWithNumberOfTaps(2, numberOfTouches: 1)
waitForExpectationsWithTimeout(3, handler: nil)
XCTAssertEqual(app.buttons["numberButton"].title, "2")
}

希望对你有用:)

关于xcode 7.3 UI 测试随机通过或失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37343480/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com