我有一个非常简单的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)
}

08-26 17:27
查看更多