2

按照这个例子,我可以让测试使用期望语法,但不能使用应该语法。

以下作品:

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我认为应该做它通常的扩展对象原型的事情,但这不知何故不适用于 webdriver 承诺对象。这里有什么问题?

4

2 回答 2

2

我的问题和我以某种方式错过的另一个问题之后,问题的根源似乎是 webdriverjs 承诺基于承诺/A 和承诺/B,而 chai-as-expected 期待承诺/A+ 类型的承诺。

将 websriverjs 承诺包装在 Q 承诺中解决了这个问题:

Q(webdriverjspromise).should.eventually.eql('something')

于 2014-06-06T09:46:50.890 回答
0

这对我们有用..

  var element = $('#mainDiv');      
  expect(element.isEnabled()).to.eventually.to.equal(true, "Expect Button to be enabled.");

我会确保“承诺”确实是一个承诺,并且 eql 有效吗?我一直使用 equal。

在旁注中,我们将 Cucumber 与 Chai & Chai-as-promised 一起使用,但这与承诺无关。

于 2014-06-04T22:38:25.610 回答