La questione è in realtà molto semplice:Xcode UI Test [xcode7-beta6] - Affermare i valori etichetta reale quando si utilizza l'accessibilità etichette
Esiste un modo per affermare il valore visualizzato da un'etichetta specifica (ad esempio, UILabel) quando usando un'etichetta di accessibilità su questo oggetto?
quanto ne vedere, tutte le asserzioni (es XCTAssertEquals) realizzate negli esempi, sia esso da un WWDC Talk o Blogposts, si verifica solo se un elemento esiste per una query come XCTAssertEquals(app.staticTexts["myValue"].exists, true)
o se il numero di cellule in un tavolo è corretto XCTAssertEquals(app.tables.cells.count, 5)
. Quindi, quando si evitano le etichette di accessibilità è possibile verificare se un oggetto ha un determinato valore visualizzato, ma non quale oggetto/elemento. E quando si utilizzano le etichette di accessibilità, mi ruba l'opportunità di interrogare i valori visualizzati, perché app.staticTexts["myValue"]
non riuscirà a fornire un risultato, ma app.staticTexts["myAccessibilityLabel"]
colpirà.
Supponendo di voler testare la funzionalità "Aggiungi nuova cella alla tabella", posso verificare che sia stata aggiunta una nuova cella all'elenco, ma non ho idea se la nuova cella venga aggiunta nella parte superiore o nella in fondo alla lista o da qualche parte nel mezzo.
Per me, un modo semplice per verificare se un elemento specifico ha un determinato valore dovrebbe essere un gioco da ragazzi quando si tratta di test dell'interfaccia utente.
È possibile che a causa della documentazione mancante potrei ignorare l'ovvio. Se è così, dimmelo
Grazie @ Joe sacco. Ma sei d'accordo sul fatto che sia strano che tu possa controllare il valore di una casella di controllo (attiva o meno), ma non il valore (il testo visualizzato) di una UILabel. Destra? Per me questo significa che non posso utilizzare l'UI Testing per i casi di test funzionali, perché la maggior parte di quelli che ho incontrato contengono requisiti come _se inserisci 'abc' nel campo di testo 'a' e premi il pulsante 'b', quindi l'etichetta 'c' dovrebbe mostrare 'xyz'_. – wegenmic
@wegenmic Suggerisco di pensare in modo leggermente diverso. Ricorda che UIElement non è un oggetto UI effettivo, è un percorso di ricerca per un oggetto UI. Devi semplicemente creare un altro "percorso di ricerca". 'app.staticTexts [" New Label Text "]'. Mi ha buttato per un giro all'inizio ... "valore" non è particolarmente utile. –