2017-05-02 2 views
1

Ich teste auf iOS mit XCUITest, in einem Such-Test-Fall möchte ich überprüfen, ob alle Suchvorschläge mit dem Buchstaben beginnt ein Benutzer eingeben, sagen, wenn ich geben Sie „p“, sollte Such Vorschlag „PS4“ hat, „Telefon“, „ps3“ usw.iOS-UI-Test: Wie bekomme ich eine Liste von Element

Durch umsah ich fühle mich wie die meisten Elemente Abfragemethoden werden versuchen, ein einzelnes Element zurückzukehren, zB: let predicate = NSPredicate(format: "label BEGINSWITH[cd] 'p'") app.buttons.elementMatchingPredicate(predicate)

In einigen Fällen kann auch eine Liste von Elementen mit derselben Bedingung wichtig sein. Gibt es eine Möglichkeit, dies zu erreichen?

+1

Dies gilt nicht Ihre Frage beantworten, aber ich denke, das ist ein Unit-Test sollte eher als ein UI-Test. Sie testen die Funktionalität hier (suchen Sie den Buchstaben "p" und erhalten Sie eine Liste zurück). Der UI-Test sollte nur bestätigen, dass eine Bezeichnung (oder Liste) angezeigt wird, nachdem Sie auf die Schaltfläche "Suchen" geklickt haben. Es sollte sich nicht zu sehr mit seinen Inhalten befassen. – Hodson

+0

@Hodson Ich stimme dir irgendwie zu, ich kämpfe immer darum, wie viel Detail UI-Test verifizieren sollte – nieschumi

Antwort

0

@niesumi sieht zunächst so aus, als ob diese Aufgabe nicht für ui ist. so, warum kann u nicht einer von Funktionen zur Verfügung:

/*! Returns a new query that applies the specified attributes or predicate to the receiver. The predicate will be evaluated against objects of type id<XCUIElementAttributes>. */ 
open func matching(_ predicate: NSPredicate) -> XCUIElementQuery 

open func matching(_ elementType: XCUIElementType, identifier: String?) -> XCUIElementQuery 

open func matching(identifier: String) -> XCUIElementQuery 


/*! Returns a new query for finding elements that contain a descendant matching the specification. The predicate will be evaluated against objects of type id<XCUIElementAttributes>. */ 
open func containing(_ predicate: NSPredicate) -> XCUIElementQuery 

open func containing(_ elementType: XCUIElementType, identifier: String?) -> XCUIElementQuery 

? Und als Prüfanzahl der Abfrage, wenn u brauchen

Beispiel:

app.buttons.matching(NSPredicate(format: "label == [cd] %@", myVar)).count>1 ? doSmthWithQuery(): doSmthWithElement() 
Verwandte Themen