我刚刚将一些现有的 Rails 测试转换为 rspec,现在命名空间中的测试失败了。
即在下面的示例中,AccountController 规范通过,而 ChildrenController 失败并出现以下错误:
in `load_missing_constant': Expected /.../app/controllers/admin/children_controller.rb to define Admin::ChildrenController (LoadError)
应用/ Controller /account_controller.rb
class AccountController < ApplicationController
规范/ Controller /account_controller_spec.rb
require 'spec_helper'
describe AccountController do
#...
end
app/controllers/admin/children_controller.rb
class Admin::ChildrenController < ApplicationController
规范/controllers/admin/children_controller_spec.rb
require 'spec_helper'
describe Admin::ChildrenController do
include ::ControllerHelper
#...
end
我正在使用
- ruby-1.9.2-p0
- rails 3.0.3
- rspec 2.3.0
我试过使用 namespace 定义,但到目前为止运气不佳 - 有什么想法吗???
最佳答案
另一种解决方案:
通过将类定义为字符串,它将正常加载:
# children_controller_spec.rb
require 'spec_helper'
describe "Admin::ChildrenController" do
# -something-
end
这将在 spec/controller/admin 目录中工作
编辑:在 2.10.x 中不起作用
关于ruby-on-rails - Rspec 测试在命名空间中失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4493632/