在为Angular Scenario Runner编写 E2E 测试时,我遇到了一种query()
方法:
element(selector, label).query(fn)
文档说:
执行函数 fn(selectedElements, done),其中 selectedElements 是与给定 jQuery 选择器匹配的元素,而 done 是在 fn 函数末尾调用的函数。标签用于测试输出。
所以我为我的html页面上的一组按钮写了一个it-case:
it('should display all buttons on page load', function () {
var buttonText = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'];
element('button', 'UI elements').query(function (selectedElements, done) {
selectedElements.each(function (idx, elm) {
expect(elm.innerText in buttonText).toEqual(true);
});
done();
});
});
作为测试执行的结果,我收到了一个包含 10 个失败的期望子句的列表:
预期为真但未定义
中间调试表明elm.innerText in buttonText
情况属实。
所以我的问题是,出了什么问题?是不是done()
方法的错误使用?