在 Nodejs 中使用 Jasmine 测试 promise 是否被解决或拒绝

Test if a promise is resolved or rejected with Jasmine in Nodejs(在 Nodejs 中使用 Jasmine 测试 promise 是否被解决或拒绝)
本文介绍了在 Nodejs 中使用 Jasmine 测试 promise 是否被解决或拒绝的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

问题描述

我知道如何在 Mocha 中做到这一点,但想知道如何在 Jasmine 中做到这一点.我试过这个

I know how to do it in Mocha but want to know how to do it with Jasmine. I tried this

describe('test promise with jasmine', function() {
    it('expects a rejected promise', function() {
        var promise = getRejectedPromise();

        // return expect(promise).toBe('rejected');
        return expect(promise.inspect().state).toBe('rejected');
    });
});

但是,状态总是pending,当然,测试失败了.我在网上找不到任何可以让它工作的例子.

However, the state is always pending and, of course, the test fails. I couldn't find any example online that I could make it work.

有人可以帮我解决这个问题吗?

Can someone please help me with this?

谢谢.

推荐答案

要使用 jasmine 测试异步代码,您应该使用 它的异步语法,例如:

To test asynchronous code with jasmine you should use its async syntax, e.g.:

describe('test promise with jasmine', function(done) {
    var promise = getRejectedPromise();

    promise.then(function() {
      // Promise is resolved
      done(new Error('Promise should not be resolved'));
    }, function(reason) {
      // Promise is rejected
      // You could check rejection reason if you want to
      done(); // Success
    });
});

这篇关于在 Nodejs 中使用 Jasmine 测试 promise 是否被解决或拒绝的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

相关文档推荐

Drag amp; Drop with Protractor by Repeater(拖动amp;通过中继器使用量角器掉落)
Getting the position of the element in a list when it#39;s drag/dropped (ui.sortable)(拖放时获取元素在列表中的位置(ui.sortable))
Detecting HTML5 Drag And Drop support in javascript(在 javascript 中检测 HTML5 拖放支持)
HTML5 drop event doesn#39;t work unless dragover is handled(除非处理了拖动,否则 HTML5 放置事件不起作用)
How to use jQuery#39;s drop event to upload files dragged from the desktop?(如何使用 jQuery 的 drop 事件上传从桌面拖动的文件?)
Drop image into contenteditable in Chrome to the cursor(将图像拖放到 Chrome 中的 contenteditable 到光标处)