2015-09-03 10 views
5

Ich verwende XCTest UI Test Framework, um Zeilen in einer Tabellenansicht zu überprüfen. In meinem Test muss ich die Existenz von Text in einer Tabellenansichtszeile anhand seines Indexes überprüfen.Wie kann ich die Existenz von Text in einer Tabellenansichtszeile überprüfen, wenn der Index in einem XCTest-UI-Test angegeben ist?

Ich dachte an tableRows.elementBoundByIndex Methode, aber es gab nichts zurück. Die Anzahl der Zeilen, die durch Aufrufen von tableRows.count zurückgegeben werden, ist null. Der Tisch ist vorhanden und gefugt, weil ich den Text in den Zeilen erfolgreich abfragen kann:

XCTAssertEqual(app.tables.staticTexts["Cute Alpaca"].exists) 

Wie kann ich Existenz eines Textes in einer Reihe angegebenen Index in einem XCTest UI Test überprüfen?

Antwort

12

Es stellt sich heraus, dass tableRows nicht tatsächlich Zeilen in der UITableView erkennt. Verwenden Sie stattdessen cells.

Ich habe das Gefühl, dass tableRows und tableColumns verwendet Tests auf Mac OS X zu tun, wo Sie aktuelle Tabellen haben, während auf iOS wir UITableViewCell und UICollectionViewCell haben. Oder dies könnte ein Fehler sein, da wir uns noch in der Beta-Phase befinden.

let table = app.tables.element 
XCTAssertTrue(table.exists) 

let cell = table.cells.elementBoundByIndex(2) 
XCTAssertTrue(cell.exists) 
let indexedText = cell.staticTexts.element 
XCTAssertTrue(indexedText.exists) 

oder die Einzeiler

XCTAssertTrue(app.tables.element.cells.elementBoundByIndex(2).exists) 
0

Für Ihren Fall denke ich, dieser Code wird Ihnen helfen.

let tableCellContainer = app.tables["HomeTableView"].cells.element(boundBy: 1) // Get the first Cell 
let cell = tableCellContainer.staticTexts["Brazil"] 
XCTAssert(cell.exists) 

Grüße,