Jasmine与Mocha针对Rails 3.1+的JavaScript测试

Jasmine vs. Mocha JavaScript testing for Rails 3.1+

本文关键字:JavaScript 测试 Rails Mocha 针对 Jasmine      更新时间:2023-09-26

我有Jasmine的经验,非常喜欢它。有没有人有Jasmine和Mocha的经验,特别是Rails的经验?我想知道是否值得切换到.

我在Jasmine和Mocha都做过测试。首先,切换相对容易。基本的describeit BDD模式是相同的。您需要更改断言的方式,并切换到不同的异步测试接口。总体而言,它们具有可比性。

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");在我看来更优雅。我不喜欢chai.js expect(42).to.be.above(41)风格的点分隔语句界面,因为它在听觉上不太好。

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

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

https://github.com/modeset/teaspoon

Mocha是一个非常棒的库,但我通常使用Jasmine——对我来说,它主要是关于Jasmine的知识和经验,但Mocha有一些非常酷的功能——比如让你知道你什么时候在全球范围内流血。

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