我有一个名为Reports :: Accountant :: ApprovedTimeOffRequestsController的控制器。它位于正确的目录中,并且类名在文件中是正确的。 Rails控制台和独角兽加载就好了,但是测试期间rspec似乎无法加载文件。
这是错误。
/Users/mdarby/.rvm/gems/ruby-1.9.3-p125-perf/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:503:in load_missing_constant': Expected /Users/mdarby/Documents/Code/ccw_32/app/controllers/reports/accountant/approved_time_off_requests_controller.rb to define Reports::Accountant::ApprovedTimeOffRequestsController (LoadError)
from /Users/mdarby/.rvm/gems/ruby-1.9.3-p125-perf/gems/activesupport-3.2.1/lib/active_support/dependencies.rb:192:in block in const_missing'
这个文件是在Rails 3.0堆栈上找到的,但是现在我已经升级到3.2 / rspec 2.9,这就是轰炸。
班级的定义:
class Reports::Accountant::ApprovedTimeOffRequestsController < ApplicationController
修改
如果有人遇到这个,我通过删除规格来解决它:)
答案 0 :(得分:0)
你是否对你的测试做了什么想法?我在应用程序本身有一个案例,其中多个线程试图加载相同的模块。我只能猜测它在实际运行之前将其标记为已加载,然后该常量不可用于下一个。无论如何,我的解决方案是在线程之外添加一个准备块。
development.rb(你可能需要在test.rb中使用它)
ActionDispatch::Reloader.to_prepare do
Reports::Accountant::ApprovedTimeOffRequestsController
end
答案 1 :(得分:0)
我打赌你在使用Spork。我遇到了这个问题。我删除了Spork,我正在路上。给它一个打击,让我知道它是否修复了它。如果是这样的话,可能值得在spork上提出问题。