2016-12-13 13 views
0

Я новичок в написании тестов. Я попытался написать тест для кнопки с заголовком «0», после чего ее название должно измениться на «1». Функция тестирования ниже:XCTAsssertEqual не удалось на UTTest

func testTapNumberButtonIncrementsScore() { 
    XCUIApplication().buttons["0"].tap() 
    let newScore = XCUIApplication().buttons["1"].label 
    XCTAssertEqual(newScore, "1") 
} 

на линии с «newScore» Я получаю ошибку о том, «UI тестирование Failure - матчи не найдено для„1“Button»

кажется название кнопки не изменяется на нажмите. Я изменил название кнопки, когда кнопка нажата на @IBAction этой кнопки. Однако, если я оставлю точку останова в строке с «newScore» и буду ждать когда-нибудь и продолжу; результаты испытаний.

ответ

2

Вам нужно подождать кнопки с меткой «1».

XCUIApplication().buttons["0"].tap() 
let newScoreButton = XCUIApplication().buttons["1"] 
let exists = NSPredicate(format: "exists == 1 || enabled == 1") 
expectation(for: exists, evaluatedWith: newScoreButton, handler: nil) 
waitForExpectations(timeout: 50) { error in 
    if error != nil { 
      assertionFailure("The newScoreButton doesn't exists.") 
    } 
} 
newScore = newScoreButton.label 
XCTAssertEqual(newScore, "1")