Spy*_*ros 11 rspec ruby-on-rails cucumber
我碰巧是Ruby Inside的订阅者,因为我对Rails特别感兴趣.昨天,Rails的创建者David Heinemeier Hansson几乎说他只是使用测试/单元.我会理解,因为它是Rails内部,但他似乎给出了强烈的意见.他认为RSpec和Cucumber是不必要的复杂.
我通常不会太注意,但这取决于谁说了什么.我很尊重汉森,他的意见让我思考.当我开始使用Rails时,我从未真正研究过测试/单元.只是RSpec和黄瓜.
这就是我想要你的洞察力的原因.您认为RSpec确实很复杂吗?写测试/单元是否需要更少的时间和精力?
Ste*_*sen 14
我的建议是使用Shoulda(扩展Test :: Unit)或RSpec和Capybara,以及-no- Cucumber.
我认为在嵌套上下文中使用RSpec或Shoulda绝对值得做.RSpec肯定是重量级的(也许是超重的),因为这个原因,我正在努力.
黄瓜,我终于明白了,比通常值得的更麻烦.通过简单的集成测试和Capybara,您可以更简单,更健壮地完成您的需求.记住 - Capybara!= Cucumber,而Capybara本身就很有能力.
Shoulda很好,因为它只是增加了标准Test :: Unit框架的便利性,因此比RSpec轻得多(从技术上讲,每个都解决了一组不同的问题,但它们都提供了嵌套上下文功能).RSpec的优点是可以更自然地读取断言,并且在许多情况下还可以生成更有用的失败消息,而无需在断言上编写消息参数.
另外,请记住,Cucumber实际上并不需要RSpec,所以如果你想继续使用Cucumber,你可以只使用Test :: Unit.选择比比皆是.
这都是关于语义的.RSpec和Test :: Unit在功能上相似.就个人而言,我一直更喜欢RSpec,因为我发现使用它编写测试更自然.我也喜欢编写自定义匹配器的简单性,并且提供的默认匹配器非常有用.
黄瓜完全是一种不同的野兽.是的,如果你没有正确组织你的步骤定义,它会相当麻烦并且难以维护,但它确实有一个非常强大的用例,那就是当你的客户编写你的规范时.
我参与了客户与我们的QA团队一起编写Cucumber场景的项目.作为非技术人员,在代码中指定用户故事是一种非常平易近人且自然的方式.在遵循我们的敏捷实践时,黄瓜确实帮助我们走了一步.最终产品的质量受益于此但不是我不喜欢 Cucumber作为开发人员:)