Jak działa metoda „element (selektor, etykieta) .query (fn)” w testach Angular E2E?
Podczas pisania testów E2E dlaBiegacz scenariusza kątowego Natknąłem się naquery()
metoda:
element(selector, label).query(fn)
Thedokumentacja mówi:
Wykonuje funkcję fn (selectedElements, done), gdzie selectedElements są elementami, które pasują do danego selektora jQuery, a done jest funkcją, która jest wywoływana na końcu funkcji fn. Etykieta jest używana do wyjścia testowego.
Napisałem więc etui na zestaw przycisków na mojej stronie HTML:
it('should display all buttons on page load', function () {
var buttonText = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'];
element('button', 'UI elements').query(function (selectedElements, done) {
selectedElements.each(function (idx, elm) {
expect(elm.innerText in buttonText).toEqual(true);
});
done();
});
});
W wyniku wykonania testu otrzymałem listę 10 nieudanych klauzul oczekiwania z tekstem:
spodziewana prawda, ale była nieokreślona
Pokazało to pośrednie debugowanieelm.innerText in buttonText
warunek jest prawdziwy.
Więc moje pytanie brzmi: co poszło nie tak? Czy to niewłaściwe użyciedone()
metoda?