【问题标题】:"uninitialized constant" when included test helper module包含测试助手模块时的“未初始化常量”
【发布时间】:2011-05-26 12:20:48
【问题描述】:

我在尝试将帮助模块包含到测试中时遇到未初始化的常量错误。

我的 rails 测试目录中有以下文件

functional> admin> school_controller_test.rb
functional> controller_helper.rb

类/模块主体如下:

module ControllerHelper
  def check_sort_order (items, column, direction)
    ...
  end
end

class Admin::SchoolsControllerTest < ActionController::TestCase
  include ::ControllerHelper 

  test "should sort by columns" do
    check_sort_order(assigns(:schools), 'schools.name', 'asc')
    check_sort_order(assigns(:schools), 'schools.name', 'desc')
  end
end

当我运行它时,测试输出是:

/.../.rvm/gems/ruby-1.9.2-p0/gems/rspec-core-2.3.0/lib/rspec/core/backward_compatibility.rb:20:in `const_missing': 未初始化的常量ControllerHelper (NameError)

我尝试过使用命名空间,但根本无法将模块混入其中!任何想法为什么我会收到此错误?或者这甚至是提取常见测试功能的正确方法吗?我对 Rails 很陌生,所以任何建议都将不胜感激:)

干杯!

【问题讨论】:

    标签: ruby-on-rails ruby ruby-on-rails-3 mixins


    【解决方案1】:

    尝试将此添加到test_helper.rb

    require "test/functional/controller_helper"
    

    旁注:不确定 test:unit,但 rspec 有一个 spec/support 目录用于自动加载文件。

    【讨论】:

    • 谢谢,好人!我不得不使用 require "functional/controller_helper" 让它与 rake 测试一起工作,现在一切正常。我明天将从 rspec 开始,所以我会忍受那个 - 干杯!!
    • 不了解规范/支持。不错!
    猜你喜欢
    • 2014-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多