2014-09-30 13 views
8

In meinen Tests musste ich überprüfen, ob alle erwarteten Werte in einer Auswahlbox vorhanden sind. Es dauerte eine Weile, aber ich schuf schließlich diese Hilfsfunktion:Winkelmesser erhalten alle Auswahlbox (Option) Werte

Es funktioniert, aber sieht wirklich hässlich für mich aus. Gibt es einen besseren Weg, es zu tun?

EDIT:

Nach weiteren zwei Stunden Dokumentation zu lesen bekam ich meine Helferfunktion reduziert:

getSelectValues: function(elementFinder) 
{ 
    return elementFinder.all(by.tagName('option')).map(function(elem, index) 
    { 
     return elem.getAttribute('value'); 
    }); 
} 

profileType = element(by.model('regObj.profileType')); 
expect(getSelectValues(profileType)).toEqual(['', 'aa', 'bb', 'cc']); 
+0

gut gemacht! Sie können es als Antwort auf Ihre eigene Frage hinzufügen. –

+0

"wie man meinen Code verbessert" Fragen sind nicht wirklich der Stackoverflow Weg: s wird nicht downvote, tolles Ergebnis :) – nilsK

+0

Vielleicht die Frage nicht klar, aber ich dachte, es muss eine bessere Möglichkeit, es zu tun. Eine Methode, die ich nicht in der Dokumentation oder etwas gefunden habe :) Danke :) – Ralphz

Antwort

11

Wenn Sie mit Winkelmesser> 1.3.0, können Sie folgendes tun:

var values = element(by.model('regObj.profileType')). 
       all(by.tagName('option')).getAttribute('value'); 
expect(values).toEqual(['', 'aa', 'bb', 'cc']); 
Verwandte Themen