【问题标题】:Which testing method to go with? [Rails]使用哪种测试方法? [导轨]
【发布时间】:2010-03-15 11:06:24
【问题描述】:
我今天要为一个客户开始一个新项目。
我之前做过一些 Rails 项目,但从来没有为它们编写测试。
我想从这个新项目开始改变这一点。
我知道有几种测试工具,但是对于我应该使用哪个有点困惑。
我听说过 RSpec、Mocha、Webrat 和 Cucumber。
请记住,我从未真正编写过任何常规测试,因此我对测试的一般知识非常有限。
你建议我如何开始?
谢谢!
感谢大家的回复!我发布了一个相关的问题,可能会引起那些将来查看此问题的人的兴趣。 You can find it here.
【问题讨论】:
标签:
ruby-on-rails
testing
【解决方案1】:
我更喜欢将 Rspec 和 Cucumber 结合使用。我也更喜欢 Capybara 而不是 Webrat。
Rspec 非常棒,因为它的 Rails 集成和结构。它在技术上是行为测试,但在实践中它最终感觉像是单元测试。它还允许您使用“描述”块以您喜欢的任何结构对“规范”或 rspec 测试进行分组和定义。
黄瓜等级更高。这就是您将用户故事翻译成的内容。例如,您可能决定您的用户应该能够更改他们的密码,因此您将编写如下内容:
Scenario: Change password
Given I am logged in
And I am on the change password page
When I fill in "p4ssw0rd" for "old_password"
And I fill in "newp4ssw0rd$$" for "new_password"
Then my password should be "newp4ssw0rd$$"
如果您与 QA 部门合作,您可以向他们展示您的测试,他们会立即知道任何给定功能的状态,以及该功能应该如何工作。此外,如果您有进取的测试人员,他们可以自己编写测试,即使他们不是一般的程序员。
【解决方案2】:
它们都有不同的功能,如果您真的关心软件的质量,您会全部使用它们。
RSpec 更适合单元测试。单元测试是测试最小的部分,通常是你的模型方法。
WebRat 更适合功能测试,因为最终用户会通过浏览器对其进行测试。您实际上是在测试交互并测试它是否返回正确的视图/数据。
Cucumber 更像是用于行为驱动测试或端到端测试。更多的是根据很多不同的场景或数据来测试业务逻辑。
当然,您可以一起使用所有这些。例如,我可以使用 Cucumber 进行端到端测试,它也将涉及使用 WebRat 和 Rspec 的功能测试。希望这会让您有一个开始的想法。