关注this example我可以使用expect语法进行测试,但不能使用should语法。
以下作品:
var expect = chai.expect;
describe('expect syntax', function() {
it('should work', function() {
...
expect(promise).to.eventually.eql('something');
});
});
但这不是:
chai.should();
describe('should syntax', function() {
it('should work', function() {
...
(true).should.be.true;
promise.should.eventually.eql('something');
});
});
由于我收到以下错误:TypeError: Cannot read property 'eventually' of undefined
我认为应该执行扩展Object原型的常规操作,但这不适用于webdriver promise对象。这有什么不对?
答案 0 :(得分:2)
在my issue以及我错过的other issue之后,问题的根源似乎是webdriverjs承诺基于promise / A和promise / B而chai-as-expected期待承诺/ A +类型的承诺。
在Q承诺中包装websriverjs承诺解决了这个问题:
Q(webdriverjspromise).should.eventually.eql('something')
答案 1 :(得分:0)
这对我们有用..
var element = $('#mainDiv');
expect(element.isEnabled()).to.eventually.to.equal(true, "Expect Button to be enabled.");
我确保“承诺”真的是一个承诺,并且eql是否有效?我总是使用相同的。
另一方面,我们正在使用Cucumber和Chai& Chai-as-promise,但这与承诺无关。