新手问题 大家的写 rails 时候的集成测试倾向于用 rspec 还是 cucumber?

ruohanc · 2012年11月09日 · 最后由 woaigithub 回复于 2012年11月16日 · 6938 次阅读

暂时觉得还很难取舍. 用 cucumber 觉得在文字上比较清晰. 但有时候转念一想, 明明 Rspec 可以干掉的事情干嘛还要 cucumber 来插一腿啊..

大家怎么看呢..

rspec 怎么测试 view? response.body 然后正则匹配?

cucumber 在很久之前就不提倡写类似 when I click on... when I fill in ... 这种的描述了。 而应该写更贴近业务的语言,把具体在页面的操作都包含在每个 step 里面。

#3 楼 @pongyo 具体说来是怎么样?

#6 楼 @knwang 看来你对 cucumber 情有独钟啊....

我们是用 rspec + capybara 较多, cucumber 是偶尔用...

#4 楼 @ruohanc

对于 Rspec, 我个人认为 Cucumber 优势在于它所提倡的 live document 和 Specification by examples.

喜欢 Cucumber, 推荐阅读The Cucumber Book

#9 楼 @u1352538039 我现在觉得 cucumber 是一个 BDD 开发的良好前提. 是 PD 和 Dev 之间交流的润滑剂. 但是如果我只是自己开发自己设计的话. 可能直接用 Rspec 会更方便

两者都有使用,两种都觉得很好,侧重点不同。

至于是否采用 BDD, The cucumber book 已经有提及,按项目需要与进行。

你的 cucumber 还是中文的,我相反,我喜欢打英文,这样打字会快一些。

RSpec 如果写得好,看上去也舒服,cucumber 就更接近人类语言。Live doc 这个好处在我们这里没能体现,基本没人关注的,这与团队文化和产品经理有比较大的关系。

另外,如果使用 3rd party gem,看看人家写的 rspec,可以很快对 gem 的使用上手。

最后就是成本问题,初次写的成本较高,但后继 continuously integration test and deployment 就体现了重大的价值。

之前网上也有许多人对 cucumber 有较大的争议,文章我忘记了出处了,可以上 Google 查一下,非常有意思。

@ruohanc @pongyo 的意思是,新版的 cucumber 应该不会自动生成 web_steps.rb,即以前 click , press 之类的 step 你需要自己去写,写成人类语言。不过我还是沿用老做法,不想花太多时间去重写 steps。

后继相关问题还有,其实还是很好玩的 :smile

  • Factory Girl module 创建与付值
  • Pickle module 的创建
  • Guard rspec, cucumber 自动测试
  • Spork cucumber, rspec 提速
  • Auto deploy to integration testing server

两个层面上的东西。 The RSpec Book.pdf 里面讲得很清楚。

我的理解: cucumber 是从应用级别看系统,更多的领域人员的语言,也可以说的系统行为吧。 rspec 是 from inside out 的很好的一种方式,从外到里的看对象的交互,对象行为。

两者可以互补,做的事应该不在一个层面,不存在替代。

knwang 为什么用 Cucumber, 及根据抽象的层面选择工具 提及了此话题。 04月03日 10:56
需要 登录 后方可回复, 如果你还没有账号请 注册新账号