我有一个非常简单的XCTestCase
实现,它测试按钮上的轻击,并希望显示Alert Controller 。问题是tap()
方法不起作用。在相关按钮的IBAction中放置一个断点,我意识到甚至没有调用该逻辑。
class uitestsampleUITests: XCTestCase {
var app: XCUIApplication!
override func setUp() {
super.setUp()
continueAfterFailure = false
app = XCUIApplication()
app.launch()
}
func testButton() {
let button = app.buttons["Button"]
button.tap()
expectationForPredicate(NSPredicate(format: "exists == 1"), evaluatedWithObject: button, handler: nil)
waitForExpectationsWithTimeout(5.0, handler: nil)
}
}
另外,复制
button.tap()
指令会使测试通过,如下所示: func testButton() {
let button = app.buttons["Button"]
button.tap()
button.tap()
expectationForPredicate(NSPredicate(format: "exists == 1"), evaluatedWithObject: button, handler: nil)
waitForExpectationsWithTimeout(5.0, handler: nil)
}
我在Xcode 7.3.1中面临此问题,我缺少什么吗?是虫子吗?
最佳答案
因此,苹果工程师对我的错误报告做出了回应:
所以我做到了,现在它可以工作了:
override func setUp() {
super.setUp()
continueAfterFailure = false
app = XCUIApplication()
app.launch()
sleep(1)
}