“uninitialized constant” when included test helper module

强颜欢笑 提交于 2019-12-10 13:42:41

问题


I am getting an uninitialized constant error when trying to include a helper module into a test.

I have the following files in my rails test directory

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

The class/modules bodies are as follows:

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

When I run this, the test output is:

/.../.rvm/gems/ruby-1.9.2-p0/gems/rspec-core-2.3.0/lib/rspec/core/backward_compatibility.rb:20:in `const_missing': uninitialized constant ControllerHelper (NameError)

I've tried playing with the namespaces, but can't get the module mixed in at all! Any ideas why I'm getting this error? Or is this even the correct way to extract common test functions? I'm very new to Rails, so any advice would be appreciated :)

Cheers!


回答1:


Try adding this to test_helper.rb:

require "test/functional/controller_helper"

Side note: Not sure about test:unit, but rspec has a spec/support directory for files to get auto-loaded.



来源:https://stackoverflow.com/questions/4460400/uninitialized-constant-when-included-test-helper-module

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!