Jasmine vs. Mocha Rails 3.1+的JavaScript测试[关闭]


Answers:


119

我已经在Jasmine和Mocha中进行了测试。首先,切换相对容易。基本模式describeitBDD模式相同。您将需要更改断言的方式,并切换到用于异步测试的其他接口。总体而言,它们是可比的。

Mocha的异步接口更加简单和一致。测试和设置可以是同步的也可以是异步的,这很棒。这以及TJ Holowaychuck是史诗般的代码诗人这一事实,是尝试Mocha的充分理由。

我确实认为Jasmine匹配器更易于阅读且更优雅,尤其是与jasmine-jquery插件搭配使用时。Mocha通常与用于断言的单独库配对,如果正在执行浏览器内测试,则通常与chai.js配对,而对于仅用于节点的测试,则通常与should.js配对。我对chai的assert.equal()界面很满意,但是Jasmine风格expect($("#central_errors").html()).toContain("must provide a name");对我来说似乎更优雅。我不喜欢expect(42).to.be.above(41)使用点号分隔的句子的chai.js风格界面,因为它在听觉上效果不佳。

归根结底,这是一个个人喜好问题,我强烈建议您花一天左右的时间来编写Mocha测试而不是Jasmine来看看它的感觉。完全值得的投资,即使您决定坚持使用Jasmine,您也会从第一手的知识开始这样做,并且对解决Jasmine解决的某些问题的其他方法有所了解。我尝试过,我坚持使用Mocha的部分原因是因为对TJ的赌注是不错的选择,但是Jasmine还是一个成熟,扎实且被广泛采用的库。


谢谢彼得!我所寻找的只是这种观察
而已

7
嘿,彼得,很棒的文章!只需添加,使用Chai,您还可以获取一个Jasmine样式(“ bdd”)界面:chaijs.com/code/expect.html实际上,您可以将其与assert(“ tdd”)界面混合并匹配。 。与jasmine-jquery类似,还有一个chai-jquery插件,尽管它很新。
Jo Liss 2012年

6
是的,chai和mocha都有多个接口。正如我上面提到的,我不喜欢chai bdd / expect接口,因为我发现所有这些点都不有用。
彼得·里昂斯

4
+1。和一个伟大的文章。对于提示,请尝试一下它们,看看它们如何工作。
斯科特·席尔维

茉莉花2.0使您的答案有变化吗?
Anton Rudeshko 2014年

4

在github上查看Teabag项目。它特别允许您将资产管道与Mocha,Jasmine或QUnit一起使用。

https://github.com/modeset/teaspoon

Mocha是一个非常出色的库,但是我通常使用Jasmine-对我来说,它主要是关于Jasmine的知识和经验,但是Mocha具有一些非常酷的功能-例如让您知道何时将事物渗入全球范围。

弄清楚该项目值得一提,因为它特别允许您(在不同套件中)同时使用两者,以便您自己决定。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.