Question

Suivant cet exemple Je peux faire fonctionner des tests avec la syntaxe attendue mais pas avec la syntaxe devrait.

Les travaux suivants :

var expect = chai.expect;
describe('expect syntax', function() {
    it('should work', function() {
        ...
        expect(promise).to.eventually.eql('something');
    });
});

Mais ce n’est pas le cas :

chai.should();
describe('should syntax', function() {
    it('should work', function() {
        ...
        (true).should.be.true;
        promise.should.eventually.eql('something');
    });
});

Puisque j'obtiens l'erreur suivante : TypeError: Cannot read property 'eventually' of undefined Je suppose que devrait fait sa chose habituelle d'étendre le prototype d'objet, mais cela ne s'applique pas d'une manière ou d'une autre à l'objet promis par le pilote Web.Qu'est-ce qui ne va pas ici ?

Était-ce utile?

La solution

Suivant mon problème et ça Autre question que j'ai manqué d'une manière ou d'une autre, il semblerait que la source du problème soit que les promesses de webdriverjs soient basées sur promise/A et promise/B alors que chai-as-expected attend des promesses de types promise/A+.

Envelopper la promesse webriverjs dans une promesse Q a résolu le problème :

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

Autres conseils

Cela fonctionne pour nous ..

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

Je veillerais à ce que la "promesse" est vraiment une promesse et que EQL fonctionne-t-il? J'ai toujours utilisé égal.

sur une note de côté que nous utilisons du concombre avec Chai & Chai-comme-promis, mais cela ne devrait pas avoir d'importance avec la promesse.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top