неинициализированная константа при включенном вспомогательном тестовом модуле

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

В моем тестовом каталоге рельсов есть следующие файлы

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, поэтому буду благодарен за любой совет :)

Ваше здоровье!


person laura    schedule 16.12.2010    source источник


Ответы (1)


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

require "test/functional/controller_helper"

Боковое примечание: не уверен в test: unit, но в rspec есть каталог spec/support для автоматической загрузки файлов.

person Zubin    schedule 16.12.2010
comment
Спасибо, милая! Мне пришлось использовать requirefunction / controller_helper, чтобы заставить его работать с rake test, теперь все работает отлично. Я собираюсь начать с rspec завтра, так что я понесу это потом - ура !! - person laura; 16.12.2010
comment
Не знал о спецификациях / поддержке. Отлично! - person clacke; 13.06.2011