包含测试辅助模块时的"未初始化常量"

lau*_*ura 6 ruby ruby-on-rails mixins ruby-on-rails-3

在尝试将辅助模块包含到测试中时,我得到了一个未初始化的常量错误.

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

functional> admin> school_controller_test.rb
functional> controller_helper.rb
Run Code Online (Sandbox Code Playgroud)

类/模块体如下:

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
Run Code Online (Sandbox Code Playgroud)

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

/.../.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很新,所以任何建议都会受到赞赏:)

干杯!

Zub*_*bin 7

尝试将此添加到test_helper.rb:

require "test/functional/controller_helper"
Run Code Online (Sandbox Code Playgroud)

附注:不确定test:unit,但是rspec有一个spec/support文件目录可以自动加载.