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