Rails 为什么大家都喜欢用 RSpec,相比较 Rails 自带的测试单元有什么优点吗?

adamshen · 2015年12月02日 · 最后由 case2111 回复于 2015年12月09日 · 2811 次阅读

如题

现在不少 Rspec 的用法 也被引入到了 miniTest 里了,类似于MiniTest::Spec::DSL这些东西,只是要稍微配置一下。另外还是有不少人忠于自带的测试,比如 DHH。

不知道为什么,可能是我先学了 RSpec 以后就不想学别的了,够用,难得换

我就不用 Rspec,用 Minitest

没什么好处,以前垃圾语法一大堆。以前有个程序员在我们 code 里面引入 rspec,我删掉那个 Gem 以后,系统快了 10%。

对于学习 DSL 和元编程有意义。

陈金州上次说的很有道理 (Ruby Conf China 2013),为什么有这么多 Rspec best practice,因为根本就是这丫引入的复杂度。而且 Rspec 可以说不是 Ruby。

爱 Ruby 用 Minitest

DSL 相对于用类来组织,个人觉得清晰很多。 至于速度,我倒是不知道有什么影响,反正只是测试,又不会影响运行速度,扔在 CI 上跑就好了。 这个我觉得就是个人口味不同吧。 反正做 feature test 我是一直用 rspec 的也就这么用下去了,minitest 没用过。

原来写 C# 的时候用的是 nunit,语法类似 minitest。感觉是能写,但是比较无聊(个人感觉)。 后来接触了 ruby 和 js。RSpec 和 jasmine 的语法类似,学习交流成本都低 (如果用 minitest, 得两种语法切换),所以就转到 RSpec 了。一直这么用。 个人觉得 RSpec 好的方面:

  • 文档丰富 betterspecs
  • 书写风格流畅(写得爽,个人感觉),符合英语习惯

不好的方面:

  • 新旧语法在一起,带来混乱
  • 运行慢,测试多了运行时间长,不适于快速部署。调优耗时。
  • 写得不好会非常 verbose

以后是否会继续用:看情况。

  • 团队成员的测试习惯(是 minitest 党还是 RSpec 党)
  • 团队的技术栈。精通 minitest 和 RSpec 的程度

@yue 感谢贴出的文档

楼主,Minitest 才是大部分人的选择吧?

还是感觉 RSpec 用着顺手

需要 登录 后方可回复, 如果你还没有账号请 注册新账号