q
library dieses nette Feature hat zu lösen und mehrere Versprechen in getrennte Argumente verteilt:Verbreitung Versprechen in Protractor
Wenn Sie ein Versprechen für ein Array haben, können Sie sich als für dann Ersatz verbreitete Verwendung. Die Spread-Funktion "spreizt" die Werte über die Argumente des Fulfillment-Handlers.
return getUsername()
.then(function (username) {
return [username, getUser(username)];
})
.spread(function (username, user) {
});
In Winkelmesser, versuchen wir, den Einbau-protractor.promise
kommt von WebDriverJS
zu verwenden.
Die Frage:
Ist es möglich, die "Spread" Funktionalität mit protractor.promise
zu haben? Use Case
Beispiel:
wir eine eigene Jasmin Matcher check if an element is focused implementiert haben. Hier müssen wir zwei Versprechen lösen, bevor wir einen Gleichheitsvergleich machen. Derzeit verwenden wir protractor.promise.all()
und then()
:
protractor.promise.all([
elm.getId(),
browser.driver.switchTo().activeElement().getId()
]).then(function (values) {
jasmine.matchersUtil.equals(values[0], values[1]);
});
die im Idealfall würden wir in einem besser lesbaren Zustand haben mag:
protractor.promise.all([
elm.getId(),
browser.driver.switchTo().activeElement().getId()
]).spread(function (currentElementID, activeElementID) {
return jasmine.matchersUtil.equals(currentElementID, activeElementID);
})
Wie erwarten Sie, dass dies geschieht, wenn es sich um zwei verschiedene Bibliotheken handelt? Wenn das WebDriverJS-Versprechen nicht in Q oder Bluebird verpackt ist, können Sie die _get-Funktionalität_ einer anderen Bibliothek –
@KirillSlatin nicht abfragen, und darum frage ich eigentlich. Wie können wir den "Winkelmesser" erweitern und ist es machbar? Außerdem habe ich es noch nicht ausprobiert, aber was ist, wenn wir "Winkelmesser" mit "q" im laufenden Betrieb ersetzen, wie würde es den Winkelmesser-Testlauf usw. beeinflussen. – alecxe
hmm, das könnte Sinn machen, die Versprechen-Engine zu ersetzen von Anfang an. Ich dachte daran, eine bestimmte Verheißungsinstanz einzupacken. Etwas Ähnliches wie "promisify" von bluebird –