Próbuję przetestować aplikację, która wyświetla wykresy za pomocą rikszy i d3. testy realizowane są za pomocą kątomierza i jaśminu. na marginesie, uważam, że pytanie nie jest tak naprawdę charakterystyczne dla tego przypadku użycia i jest bardziej ogólne.Pobierz tablicę różnych wartości tego samego elementu za pomocą kątomierza
, więc test ma najechać kursorem myszy na wykres i zebrać tekst, który jest wyświetlany dla każdego punktu (example). tablica ta jest następnie porównywana z daną tablicą.
Mam nadzieję Pseudokod ilustruje problem:
var graph = ... //
var promises = [];
var promise = graphElement.getSize().then(function(size){
_.times(size, function(i) {
moveMouse(i, 0); // move mouse to i-th pixel
promises.push(graph.element(by.css('.hover-text')).getText());
});
return promises;
});
promise.magicallyWaitForAllOfThem();
_.each(promises, function(textPromise){
expect(textPromise).toBe('something');
});
więc, problemem jest to, że skoro muszę rozmiaru rozwiązać pierwszy, i nie ma sposobu, aby czekać na wszystkie obietnice, aby rozwiązać i powrotu szereg obietnic tekstowych, które można później wykorzystać za pomocą funkcji oczekiwać().
EDYCJA: wyraźnie wspomniany kątomierz/jaśmin.
jest to różni od protractor.promise.all? – ilj
Czy można to osiągnąć bez oddzwaniania? – ilj
masz na myśli bez "wtedy"? robisz asynchroniczne wywołanie, będziesz potrzebował wywołania zwrotnego – mido