sto provando a testare un'applicazione che visualizza grafici usando risciò e d3. i test sono implementati utilizzando goniometro e gelsomino. come nota a margine, credo che la domanda non sia propriamente specifica di questo caso d'uso ed è più generica.ottieni array di valori diversi dello stesso elemento usando il rapportatore
quindi, il test dovrebbe posizionare il mouse su un grafico e raccogliere il testo visualizzato per ciascun punto (example). questo array deve quindi essere confrontato con un determinato array.
Spero che questo pseudocodice illustra il problema:
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');
});
così, il problema è che da quando ho bisogno la dimensione di risolvere prima, io non ho un modo per attendere che tutte le promesse per risolvere e ritorno una serie di promesse di testo che possono essere successivamente utilizzate con expect().
MODIFICA: goniometro/gelsomino esplicitamente citato.
è diverso da protractor.promise.all? – ilj
può essere raggiunto senza la richiamata? – ilj
vuoi dire senza 'then'? stai facendo una chiamata asincrona, hai bisogno di una callback – mido