我正在尝试使用量角器和 chai-as-promised 用 cucumber.js 编写测试。
在我的 Page 对象中,我有这些代码片段:
var menusOnListElements = element.all(by.repeater('menu in menus').column('menu.name'))
this.isMenuListed = function(menu) {
return menusOnListElements.each(function(element) {
return element.getText().then(function (name) {
if (menu.name === name) {
return true; //this is executed
}
});
});
};
在我的步骤定义代码中,我这样做:
var menu = {};
menu.name = 'Abc';
expect(new MenusPage().isMenuListed(menu)).to.eventually.be.true.notify(done);
当我运行这个测试时,我得到
预期未定义为真
这意味着 isMenuListed 方法返回 undefined 而不是 true。但是,我对其进行了调试,我可以看到“返回真”;语句被执行。
在这种情况下,我是否遗漏了有关承诺如何运作的信息?