Jasmine vs.Mocha JavaScript测试Rails 3.1+;

Jasmine vs.Mocha JavaScript测试Rails 3.1+;,javascript,ruby-on-rails,jasmine,mocha.js,Javascript,Ruby On Rails,Jasmine,Mocha.js,我有茉莉花的经验,非常喜欢它。有没有人对茉莉花和摩卡咖啡都有经验,特别是对Rails?我想知道是否值得换用。我已经用茉莉花和摩卡咖啡做了测试。首先,切换相对容易。基本的descripe和itBDD模式是相同的。您需要更改断言的方式,并切换到异步测试的不同接口。总的来说,它们是可比的 Mocha的异步接口更简单、更一致。测试和设置可以是同步的,也可以是异步的,这很好。这一点,再加上TJ Holowaychuck是一位史诗密码诗人,都是尝试摩卡咖啡的好理由 我确实认为Jasmine matchers

我有茉莉花的经验,非常喜欢它。有没有人对茉莉花和摩卡咖啡都有经验,特别是对Rails?我想知道是否值得换用。

我已经用茉莉花和摩卡咖啡做了测试。首先,切换相对容易。基本的
descripe
it
BDD模式是相同的。您需要更改断言的方式,并切换到异步测试的不同接口。总的来说,它们是可比的

Mocha的异步接口更简单、更一致。测试和设置可以是同步的,也可以是异步的,这很好。这一点,再加上TJ Holowaychuck是一位史诗密码诗人,都是尝试摩卡咖啡的好理由

我确实认为Jasmine matchers更容易阅读,也更优雅,尤其是与Jasmine jquery插件搭配使用时。Mocha通常与一个单独的断言库配对,如果您正在进行浏览器内测试,则通常为chai.js,对于仅节点测试,则为should.js。我对chai的
assert.equal()
界面很满意,但是Jasmine风格的
expect($(“#central_errors”).html()).toContain(“必须提供名称”)在我看来更优雅。我不喜欢chai.js
expect(42).to.be.over(41)
风格的带点分隔句的界面,因为它在听觉上不太好


最后,这是一个个人偏好问题,我强烈建议你花一天左右的时间编写摩卡测试,而不是茉莉花,看看感觉如何。这完全是一项值得的投资,即使你决定坚持使用Jasmine,你也将从一个拥有第一手知识的地方开始,并意识到解决Jasmine解决的一些问题的其他方法。我试过了,我坚持用摩卡咖啡,部分原因是在TJ上下注是个不错的选择,但Jasmine也是一个成熟、可靠且被广泛采用的图书馆。

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

摩卡咖啡是一个非常棒的图书馆,但我通常使用茉莉花——对我来说,它主要是关于茉莉花的知识和经验,但摩卡咖啡有一些非常酷的功能——比如让你知道什么时候你会把东西带入全球范围


我觉得值得一提的是这个项目,因为它特别允许你在不同的套间里同时玩这两种游戏,这样你就可以自己决定了。

谢谢彼得!正是我想要的那种观察:)嘿,彼得,写得好!只需补充一点,使用Chai,您也可以获得一个Jasmine风格(“bdd”)接口:事实上,您可以将其与assert(“tdd”)接口混合匹配。与jasmine jquery类似,还有一个chai jquery插件,尽管它非常新。是的,chai和mocha都有多个接口。正如我上面提到的,我不喜欢chai bdd/expect界面,因为我觉得所有这些点都没有帮助。而且写得很好。让protip试一下这两种方法,看看它们是如何在指骨上工作的。你的答案有没有因为Jasmine 2.0而有所改变?