2016-12-13 3 views
0

Ich bin neu in schriftlichen Tests. Ich habe versucht, einen Test für eine Schaltfläche zu schreiben, die mit dem Titel "0" angetippt wurde, und nach dem Tippen muss der Titel auf "1" geändert werden. Testfunktion ist unten:XCTAsssertEqual fehlgeschlagen am UTTest

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

auf Linie mit ‚newScore‘ Ich erhalte Fehler, der besagt „Fehler UI Testing - Keine für Spiele gefunden‚1‘Button“

Es scheint, Titel-Taste nicht auf geändert wird Zapfhahn. Ich habe den Titel der Schaltfläche geändert, wenn die Schaltfläche @IBAction dieser Schaltfläche angetippt wurde. Allerdings, wenn ich Haltepunkt in der Zeile mit 'newScore' halte und irgendwann warte und fortfahre; die Testerfolge.

Antwort

2

Sie müssen auf die Schaltfläche mit der Bezeichnung "1" warten.

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") 
Verwandte Themen