在 Nodejs 中使用 Jasmine 1.3 测试一个承诺是否被解决或拒绝

Test if a promise is resolved or rejected with Jasmine 1.3 in Nodejs

我正在使用 npm 库 jasmine-node 对我的 javascript 代码进行单元测试。据我了解,它使用 Jasmine 1.3。

我的大部分代码都涉及异步承诺(使用 ES6 内置承诺,而不是第 3 方承诺库之一)。我读过 Jasmine 2 有一个名为 done() 的方法,您可以从 "then" 或 "catch" 调用中调用您的承诺。我可以在 Jasmine 1.3 中做什么?有没有办法模拟这个?还是有更好的方法或茉莉花节点的不同分支?

看到这个问题: Test if a promise is resolved or rejected with Jasmine in Nodejs

您应该避免使用 jasmine-node 模块。它不再维护(最后一次提交是两年前的事了,而且 PR 越来越多)。相反,您应该使用 jasmine-core,茉莉花的官方捆绑包。

老实说,这些包的捆绑不是很清楚。您实际上想要安装 jasmine 包。这为您提供了命令行工具,可帮助您配置项目以与 jasmine 一起使用,并为您提供 运行 规范的命令。例如(来自文档):

本地安装:

npm install --save-dev jasmine

为 Jasmine 初始化项目

./node_modules/.bin/jasmine init

用一些示例为您的项目播种

./node_modules/.bin/jasmine examples

到运行你的测试套件

./node_modules/.bin/jasmine

您也可以选择像这样全局安装 jasmine:

npm install -g jasmine

这样,您就可以避免在每次调用前加上 ./node_modules/.bin/ 前缀。但是,我更喜欢对所有项目依赖项使用本地安装的实例。这可确保您使用项目所需的相同版本的依赖项。