【发布时间】:2012-03-31 09:42:03
【问题描述】:
我有 Jasmine 的经验,并且非常喜欢它。有没有人有 Jasmine 和 Mocha 的经验,特别是 Rails?我想知道是否值得切换。
【问题讨论】:
标签: javascript ruby-on-rails jasmine mocha.js
我有 Jasmine 的经验,并且非常喜欢它。有没有人有 Jasmine 和 Mocha 的经验,特别是 Rails?我想知道是否值得切换。
【问题讨论】:
标签: javascript ruby-on-rails jasmine mocha.js
我已经在 Jasmine 和 Mocha 中进行了测试。首先,切换相对容易。基本的describe 和it BDD 模式是相同的。您将需要更改执行断言的方式并切换到异步测试的不同接口。总体而言,它们具有可比性。
Mocha 的异步接口更简单、更一致。测试和设置可以是同步的也可以是异步的,这很棒。这一点,再加上 TJ Holowaychuck 是一位史诗般的密码诗人,这些都是尝试摩卡咖啡的好理由。
我确实认为 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 有一些非常酷的功能 - 比如让你知道什么时候你正在将内容注入全局范围.
认为值得一提的是该项目,因为它特别允许您在不同的套件中同时使用这两种方法,因此您可以自己决定。
【讨论】: