【问题标题】:Difference between rspec, capybara and cucumberrspec,水豚和黄瓜之间的区别
【发布时间】:2014-03-18 21:10:42
【问题描述】:

谁能告诉我rspec、capybara和cucumber的区别?

group :development, :test do
  gem 'rspec-rails', '~> 2.0'
end

group :test do
  gem 'capybara', '~>2.1.0'
end

在 JavaScript 中,我将 Jasmine 视为我的单元测试框架。这三个 gem 在 Ruby 环境中的作用是什么?

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    rspec 是一个功能齐全的测试框架,可让您编写 Rails 认为的单元测试、功能测试和集成测试。所有这些都通过 Rails 应用程序的各个层来练习 Ruby 代码。所有这些测试都模拟了对 Rails 应用程序的请求,但实际上并未通过网络端到端地运行应用程序。

    cucumber 是一个基于浏览器的集成测试框架,它允许编写针对从自动化 Web 浏览器访问的整个 Rails 应用程序运行的自动化测试。这允许您编写有关 JS 或 CSS 的浏览器内行为的自动化测试。 Cucumber 提供了一个独特的集成测试角度,它使用通过正则表达式映射到代码的简单英语规范。这允许更自然的“行为驱动开发”模型 - 从用户的角度以通俗易懂的语言描述 Web 应用程序应该做什么。

    capybara 是一个特殊的 Web 驱动程序,支持 cucumber 集成测试框架,它使用无头 webkit。这允许运行无头(无 UI)Chrome/Webkit 浏览器进行自动化测试。这在开发中都非常有用,尤其是在远程测试/持续集成服务器上。

    所以rspeccucumber 在测试框架方面是相似的,它们都有自己的指定方式。 rspec 有一个很好的 DSL,它在作为实际代码时非常易读。 cucumber 将纯文本描述映射到真实代码。

    虽然cucumber 通常用于capybara 之上,但您也可以使用rspec 来驱动capybara 集成测试。测试是用 rspec 或 cucumber 编写的,但 capybara 是底层的集成引擎。

    【讨论】:

    • 答案确实包括这个,但我觉得强调 Capybara 不必与 Cucumber 一起使用很重要。 Capybara 只能与 RSpec 一起使用。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-24
    • 1970-01-01
    • 1970-01-01
    • 2012-07-06
    • 2012-01-18
    相关资源
    最近更新 更多