Wenn ich versuchte, folgenden Code innerhalb des Testkörpers zu verwenden, scheint es gut zu funktionieren, außer dass Code nach (außerhalb) dieses Blocks immer noch ausgeführt wird und der Test am Ende fehlschlägt.Wie kann die EXPECT-Bedingung darauf warten, dass das Versprechen aufgelöst wird (Code in einer Methode eingeschlossen)?
var el = element(by.model('name.first'));
el.isDisplayed().then(function(condition) {
console.log("Is Element Displayed : " + condition);
if(!condition) {
fail('Test Failed');
}
});
Aber wenn ich diesen Code innerhalb einer Methode wickle (in einer anderen util-Datei) wie:
isMyElementDisplayed: function (element) {
var el = element;
el.isDisplayed().then(function(condition) {
console.log("Is Element Displayed : " + condition);
return condition;
});
}
und dann versuchen, diese Methode in meinem Test zu nennen wie:
expect(elementActions.isMyElementDisplayed(element(by.model('name.first')))).toBe(true);
schlägt mit folgender Ausnahme fehl. Is Element Displayed : false
und noch, wie auch in diesem Fall wird der Test nicht am ‚erwarten‘ Zustand zu stoppen, aber nicht an:
Expected undefined to be true.
aber ich die Meldung in den Protokollen gedruckt zu werden das Ende. Sie können sagen, dass ich Winkelmesser und Javascript neu bin. Ich versuche, QA-Funktionstests zu automatisieren und einige wiederverwendbare Methoden zu erstellen, die wiederum von anderen verwendet werden können.
Gibt es eine korrekte Möglichkeit, den Code innerhalb einer util-Methode zu verpacken, wie ich es tue? und
Wie man
expect
Zustand zu warten, bis das Versprechen gelöst ist?
FYI: npm -Ausführung -> 2.14.7 und Winkelmesser --Version -> 3.0.0
Sie müssen die Versprechen aus dem 'isMyElementDisplayed' ersten –
@ArtyomNeustroev zurückkehren können Sie bitte führen, wie das zu tun in diesem Fall. Das wäre sehr hilfreich. Sie können das auch als Antwort posten, ich werde akzeptieren, wenn das mein Problem gelöst hat. – AGill
Ich war mir nicht sicher, dass dies das einzige Problem ist, also konnte ich es nicht als Antwort posten, aber es gibt jetzt einen :) –