Ich versuche, eine Anwendung zu testen, die Diagramme mit Rikscha und d3 zeigt. Tests werden mit Winkelmessern und Jasmin durchgeführt. Als eine Randnotiz glaube ich, dass die Frage für diesen Anwendungsfall nicht wirklich spezifisch ist und allgemeiner ist.Array von verschiedenen Werten des gleichen Elements mit Winkelmesser
so soll der Test eine Maus über ein Diagramm bewegen und den Text sammeln, der für jeden Punkt angezeigt wird (example). Dieses Array wird dann mit einem gegebenen Array verglichen.
ich dieses Pseudo-Code hoffen, zeigt das 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');
});
so ist das Problem, dass, da ich die Größe müssen zuerst lösen, ich habe nicht eine Möglichkeit haben, zu warten, bis alle Versprechen zu lösen und Rückkehr eine Reihe von Textversprechen, die später mit expect() verwendet werden können.
EDIT: explizit erwähnt Winkelmesser/Jasmin.
ist es anders aus protractor.promise.all? – ilj
kann es ohne den Rückruf erreicht werden? – ilj
du meinst ohne "dann"? Sie tun einen asynchronen Anruf, Sie benötigen einen Rückruf – mido