【问题标题】:Jasmine vs. Mocha JavaScript testing for Rails 3.1+ [closed]针对 Rails 3.1+ 的 Jasmine 与 Mocha JavaScript 测试 [关闭]
【发布时间】:2012-03-31 09:42:03
【问题描述】:

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

【问题讨论】:

    标签: javascript ruby-on-rails jasmine mocha.js


    【解决方案1】:

    我已经在 J​​asmine 和 Mocha 中进行了测试。首先,切换相对容易。基本的describeit 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 也是一个成熟、可靠且被广泛采用的库。

    【讨论】:

    • 谢谢彼得!正是我正在寻找的那种观察:)
    • 嘿彼得,写得很棒!补充一点,使用 Chai,您也可以获得 Jasmine 风格的(“bdd”)接口:chaijs.com/code/expect.html 事实上,您可以将它与 assert(“tdd”)接口混合搭配。类似于 jasmine-jquery,还有一个 chai-jquery 插件,虽然它很新。
    • 是的,chai 和 mocha 都有多个接口。正如我上面提到的,我不喜欢 chai bdd/expect 界面,因为我觉得所有这些点都没有帮助。
    • 听觉+1。和一篇很棒的文章。并且让 protip 尝试它们,看看它们是如何工作的。
    • 由于 Jasmine 2.0,您的答案是否有任何变化?
    【解决方案2】:

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

    https://github.com/modeset/teaspoon

    Mocha 是一个非常棒的库,但我通常使用 Jasmine - 对我来说,它主要是关于 Jasmine 的知识和经验,但 Mocha 有一些非常酷的功能 - 比如让你知道什么时候你正在将内容注入全局范围.

    认为值得一提的是该项目,因为它特别允许您在不同的套件中同时使用这两种方法,因此您可以自己决定。

    【讨论】:

      猜你喜欢
      • 2014-11-19
      • 2011-12-20
      • 2012-07-13
      • 1970-01-01
      • 2011-12-18
      • 1970-01-01
      • 2012-02-05
      • 2016-01-26
      • 1970-01-01
      相关资源
      最近更新 更多