【问题标题】:Rspec autoload filesRspec 自动加载文件
【发布时间】:2013-11-27 07:51:31
【问题描述】:

我正在练习Ruby on Rails Tutorial,我有一个关于 rspec 的问题。

在测试app/helpers/application_helper.rb中定义的方法full_title时,

module ApplicationHelper
    def full_title(title)
        base_title = "Ruby on Rails Tutorial Sample App"
        if title.empty?
            base_title
        else
           "#{base_title} | #{title}"
        end
    end # end of def
end

您不必在 spec/helpers/application_helper_spec.rbinclude ApplicationHelper。在 spec/requests/static_pages_spec.rb 中,您必须 include ApplicationHelper,否则 undefined methodfull_title'` 的测试将失败。

在我看来,rspec 会自动加载文件 app/helpers/application_helper.rb,您不必再次包含它。两个测试样例有什么区别?

【问题讨论】:

    标签: ruby-on-rails rspec


    【解决方案1】:

    这与“自动加载”无关,后者在 rails 上下文中是另一回事。

    RSpec 在底层使用 Rails 测试框架,您可以在 ActionController::TestCase 等类中找到它。

    那些帮助类设置了一大堆东西来提供一个用于测试的 Rails 环境。

    由于存在不同类型的环境,例如单元、功能和集成,因此会出现不同的设置。这就是为什么您必须针对不同的规范组以不同的方式处理内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-03-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-03-21
      • 2022-11-22
      相关资源
      最近更新 更多