mocha 如何对Promise进行测试

发布于 2022-09-02 11:40:08 字数 771 浏览 13 评论 0

做两个如下的测试,来对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的测试 该如何写?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

芯好空 2022-09-09 11:40:08

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

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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文