javascript - Rails 3.1+ 的 Jasmine 与 Mocha JavaScript 测试

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

<分区>

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

最佳答案

我已经在 J​​asmine 和 Mocha 中进行了测试。首先,切换相对容易。基本的 describeit BDD 模式是相同的。您将需要更改断言的方式并切换到不同的异步测试接口(interface)。总体而言,它们具有可比性。

Mocha 的异步接口(interface)更加简单和一致。测试和设置可以是同步的也可以是异步的,这很好。这一点,再加上 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,您也会从第一手知识的 Angular 这样做,并且了解其他方法来解决 Jasmine 解决的一些问题。我试过了,我坚持使用 Mocha,部分原因是押注 TJ 是一个不错的选择,但 Jasmine 也是一个成熟、可靠且被广泛采用的库。

关于javascript - Rails 3.1+ 的 Jasmine 与 Mocha JavaScript 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9710297/

相关文章:

angular - 命名空间 'jasmine' 没有导出成员 'SpyObj'

javascript - 在 Jasmine/Node.js 中测试独立的 JS 文件

php - JS 日期时间到 PHP 的转换

javascript - 如何避免 Firebase/Cloud Firestore 中的重复数据

mysql - ActiveRecord 的行为不符合我的预期

ruby-on-rails - 如何在Rails 4中获取上一页的引荐来源网址

ruby-on-rails - 在 Namecheap 上为 Heroku Rails 应用程序创建子域

angular - 使用异步 promise 与 jasmine 测试 Angular 2 服务

javascript - JQuery Masonry 是怎么来的,当我在浏览器上单击 "back"时,它会将用户射回顶部?

javascript - 如何将 ffmpeg 与 Nuxt 一起使用?