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);
});
});
我在量角器中的自動化測試有問題,它似乎認爲foundName是錯誤的,我知道一個事實,當它運行它確實是真的。我的結論是,在諾言完成之前,期望函數正在運行。如何在量角器預期運行之前返回承諾?
我想知道如何確保承諾已完成,然後在expect函數中檢查foundName?
要解決,你需要的承諾明確運行'$ scope。$ digest()' – Jagrut
感謝您的回答,但我們無法在量角器測試中使用範圍。 – MaxwellLynn
'all' /'each'是異步的,對吧? – Bergi