Как можно использовать Q.all с chai-as-promise?

В документах chai-as-promised есть следующий пример работы с несколькими промисами в одном тесте:

it("should all be well", function (done) {
    Q.all([
        promiseA.should.become("happy"),
        promiseB.should.eventually.have.property("fun times"),
        promiseC.should.be.rejectedWith(TypeError, "only joyful types are allowed")
    ]).should.notify(done);
});

Я предполагаю, что Q здесь произошло от npm install q и var Q = require('q');.

Откуда .should?

Когда я пробую это, should становится undefined, и я получаю TypeError: Cannot call method 'notify' of undefined.

Есть ли какое-то исправление обезьяны для Q, которое должно произойти в первую очередь? Или я использую неправильную версию чего-то?

Я использую огурец с транспортиром. Насколько я понимаю, они еще не поддерживают возврат промисов, поэтому пользователь должен обрабатывать вызов done.


person RichardTowers    schedule 04.03.2015    source источник


Ответы (2)



если я правильно понял, Q-обещание не должно быть, я рекомендую вам попробовать это

it("should all be well", function (done) {
    Q.all([
        promiseA.should.become("happy"),
        promiseB.should.eventually.have.property("fun times"),
        promiseC.should.be.rejectedWith(TypeError, "only joyful types are allowed")
    ]).then(done);
});

также вы можете использовать require mocha-as-promised, например:

require("mocha-as-promised")();

it("should all be well", function (done) {
    return Q.all([
            promiseA.then(function(someData){
                //here standart chai validation;
            }),
            promiseB.then(function(someData){
                //here standart chai validation;
            });
    ]).then(done);
});

Хорошо, вы добавляете следующую строку в свой код?

var chai = require("chai");
var chaiAsPromised = require("chai-as-promised");

chai.use(chaiAsPromised);
person siavolt    schedule 04.03.2015
comment
К сожалению, это не передает тестовое состояние в структуру правильно. Я выяснил, откуда взялось should; Я отвечу на свой вопрос, я думаю... - person RichardTowers; 04.03.2015