mocha 如何对Promise进行测试

做两个如下的测试,来对Promise进行测试,然而却得不到想要的效果
代码如下

var assert = require('assert');
describe('test', function() {

    describe("promise", function() {
        it("promise test", function() {

            Promise.resolve("OK").then(function(value) {
                assert.equal(value, "!dsadfasdfOKx"); //这里明显是应该直接抛出断言错误
            }, function(err) {
                assert.ok(!err);
            });

        });


       //  这个我按照mocha的官方对Promise 的测试说明http://mochajs.org/#working-with-promises 
       // 然而却抛出TypeError: Cannot read property 'eventually' of undefined的错误
        it("promise test2", function() {

            return Promise.resolve("OK").should.eventually.equal("OK");

        });
    })
});

求解。
究竟 对于Promise的测试 该如何写?

阅读 4.6k
1 个回答

官网写的已经非常非常清楚了啊

Alternately, instead of using the done() callback, you may return a Promise. This is useful if the APIs you are testing return promises instead of taking callbacks

对应你的第一个case,应当 return a Promise

        it("promise test", function() {

            return Promise.resolve("OK").then(function(value) {
                assert.equal(value, "!dsadfasdfOKx"); //这里明显是应该直接抛出断言错误
            }, function(err) {
                assert.ok(!err);
            });

        });

下面那句话

(The latter example uses Chai as Promised for fluent promise assertions.)

对应你后面的抄官方的case,依赖Chai as Promised

推荐问题
宣传栏