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 a开发者_StackOverflow中文版re 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!
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.
For me what worked (found via trail and error) was:
require "./app/helpers/currencies_helper.rb"
精彩评论