【问题标题】:Test if a promise is resolved or rejected with Jasmine 1.3 in Nodejs在 Nodejs 中使用 Jasmine 1.3 测试 promise 是否被解决或拒绝
【发布时间】:2023-04-03 09:59:01
【问题描述】:

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

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

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

【问题讨论】:

  • 据我所知,Jasmine 1.x 没有很好的异步测试支持。如果可能的话,我会迁移到 Jasmine 2.x。出于多种原因,它会更好。另一种可能性,也不是一个好的可能性是使用所有异步代码的模拟和存根,以便它可以在同一个滴答声中同步执行。看来 1.3 确实有异步支持,但是有点乱。 jasmine.github.io/1.3/…
  • 我很想迁移到 Jasmine 2,但我喜欢 npm 模块的便利性,它仍然是 1.3。我遇到了一个名为 Jasmine.Async 的模块,它看起来很有前途,可以调用像 Jasmine 2 这样的“done()”方法,但我仍在研究。
  • 我认为你错了。 jasmine-core npm 模块是您想要的。 npmjs.com/package/jasmine-core

标签: javascript node.js jasmine promise jasmine-node


【解决方案1】:

您应该避免使用 jasmine-node 模块。它不再被维护(最后一次提交是在两年多前,并且 PR 正在堆积中)。相反,您应该使用 jasmine-core,这是 jasmine 的官方捆绑包。

老实说,这些软件包的捆绑并不太清楚。您实际上想要安装 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/。但是,我更喜欢为所有项目依赖项使用本地安装的实例。这可确保您使用项目所需的相同版本的依赖项。

【讨论】:

  • 谢谢。我会试试这个。
  • 我必须输入“./node_modules/.bin/jasmine init”,因为您概述的过程没有修改我的路径,但它工作正常。
  • npm install -g jasmine 应该全局安装它。但是,如果它是项目依赖项,则最好使用本地安装的版本。我会更新我的答案。
猜你喜欢
  • 2015-01-25
  • 2020-04-15
  • 2019-04-17
  • 2019-10-25
  • 1970-01-01
  • 2018-02-25
  • 2017-03-14
  • 1970-01-01
  • 2015-08-31
相关资源
最近更新 更多