尝试将辅助模块包含在测试中时,我发现了一个未初始化的常量错误。
我的rails测试目录中有以下文件
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':uninitialized constant ControllerHelper(NameError)
我尝试过使用命名空间,但根本无法将模块混合在一起!有什么想法我收到这个错误?或者这是提取常见测试功能的正确方法吗?我对Rails很新,所以任何建议都会受到赞赏:)
干杯!
答案 0 :(得分:7)
尝试将此添加到test_helper.rb
:
require "test/functional/controller_helper"
附注:不确定test:unit,但rspec有一个spec/support
目录,可以自动加载文件。