2010-12-16 3 views
6

Я получаю неинициализированную постоянную ошибку при попытке включить вспомогательный модуль в тест.«неинициализированная константа» при включении тестового вспомогательного модуля

У меня есть следующие файлы в моем рельсах тестовой директории

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, поэтому любые советы будут оценены :)

Приветствия!

ответ

4

Попробуйте добавить это test_helper.rb:

require "test/functional/controller_helper" 

Side Примечание: Не уверен, что тест: блок, но RSpec есть каталог spec/support для файлов, чтобы получить автоматически загружены.

+0

Спасибо, хороший! Мне пришлось использовать require «functional/controller_helper», чтобы заставить его работать с рейк-тестом, теперь все работает отлично. Я собираюсь начать с rspec завтра, так что я буду терпеть это, тогда - приветствия! – laura 2010-12-16 12:12:30

Смежные вопросы