Person.prototype.checkAssignmentIncomplete = Person.chain(function (data) {
var self = this;
var assignmentPane = self.browser.element(by.id(data.testId + '#' + data.deadline));
expect(assignmentPane.isPresent()).toBe(true);
assignmentPane.click();
self.browser.waitForAngular();
var foundName = false;
var promises = [];
element.all(by.binding('member.user.fullname')).each(function (nameColumn) {
var row = nameColumn.element(by.xpath('..'));
var promise = nameColumn.getText().then(function (name) {
foundName = foundName || data.name === name;
if (foundName) {
var reviewButton = row.element(by.className('icon'));
expect(reviewButton.isPresent()).toBe(false);
}
});
promises.push(promise);
});
q.all(promises).then(function() {
expect(foundName).toBe(true);
});
});
Ich habe Probleme mit meinem automatisierten Testen in Protractor, scheint zu denken, dass foundName falsch ist und ich weiß für eine Tatsache, dass, wenn dies läuft, es tatsächlich wahr ist. Meine Schlussfolgerung ist, dass die Expect-Funktion ausgeführt wird, bevor das Versprechen abgeschlossen ist.Wie kann ich ein Versprechen zurückgeben, bevor der Winkelmesser Läufe erwartet?
Ich frage mich, wie ich sicherstellen kann, dass das Versprechen abgeschlossen ist, bevor ich den foundName in der Funktion expect überprüfen?
die Versprechen Sie explizit müssen beheben Führen Sie den '$ scope. $ Digest()' – Jagrut
Danke für Ihre Antwort, aber wir können nicht in Progractor Tests Umfang verwenden. – MaxwellLynn
'all' /' each' sind asynchron, oder? – Bergi