gpt4 book ai didi

javascript - 我可以通过 Mocha 运行 Jasmine 测试吗

转载 作者:行者123 更新时间:2023-11-30 11:24:20 25 4
gpt4 key购买 nike

正如标题所说,我希望能够在节点上使用 Mocha 运行 Jasmine 测试。作为实验,我安装了 Jasmine 和 Mocha 并运行

jasmine examples

安装示例。

运行 Jasmine 按预期运行测试:

$ ./node_modules/jasmine/bin/jasmine.js
Started
.....


5 specs, 0 failures
Finished in 0.012 seconds

但是在 Mocha 中运行测试不起作用:

$ ./node_modules/mocha/bin/mocha spec/jasmine_examples/PlayerSpec.js

0 passing (11ms)
5 failing

1) Player
should be able to play a Song:
ReferenceError: expect is not defined
at Context.<anonymous> (spec\jasmine_examples\PlayerSpec.js:14:5)

等等

同样,如果我尝试将对 jasmine.createSpy() 的调用添加到测试中,它在 Jasmine 下工作正常,但在 Mocha 下它报告

ReferenceError: jasmine is not defined

也许我不应该完全感到惊讶,但由于我是这个 Javascript 世界的新手,有人可以向我解释如何让它工作或者为什么它不起作用吗?

如果有人想知道我为什么要这样做,作为一个团队,我们使用 Jasmine,但我使用 IntelliJ 作为我的 IDE。这不理解 Jasmine 测试,所以我必须手动创建运行配置来运行特定测试。如果我能让它们在 Mocha 下运行,我可以使用内置的 Mocha 支持,只需单击 IntelliJ 放在 Mocha 测试旁边的小箭头。

最佳答案

Jasmine 和 Mocha 之间有表面上的相似之处(describeit 等),但如果您想拥有很多差异,则必须弥合一个套房在两者之下运行。您不能采用 Jasmine 套件并且通常期望它无需修改就可以在 Mocha 中工作。 Jasmine 不是为运行 Mocha 测试而设计的,Mocha 也不是为运行 Jasmine 测试而设计的。

例如,Mocha 不能用 jasmine.createSpy() 做任何事情。它甚至没有内置于 Mocha 本身的等价物。如果您要移植您的套件到 Mocha(即放弃 Jasmine 转而使用 Mocha),您必须使用像 Sinon 这样的库。提供类似的功能。如果你想让你的套件同时在 Mocha 和 Jasmine 中运行,那么你可以通过一个包装器库来弥补差距,该包装器库检测它在哪个运行器下运行并调用 jasmine.createSpy() 或Sinon 根据需要等效,但对于任何非平凡的测试套件,所需的工作将是大量的。 (坦率地说,我从事的项目没有一个可以证明费用合理的。)

您还必须使用像 Chai 这样的库提供 expect

关于javascript - 我可以通过 Mocha 运行 Jasmine 测试吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48590714/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com