ruby-on-rails - Rspec 测试在命名空间中失败

标签 ruby-on-rails ruby rspec rspec2

我刚刚将一些现有的 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/

相关文章:

ruby-on-rails - 被 RSpec 惊呆了

ruby-on-rails - 测试与 alias_attribute 的关联

ruby-on-rails - 将 Rails 5 部署到 Linux 服务器

ruby-on-rails - 使用 Rails 5 的 Bootstrap4

ruby - 如何使用 RSpec 测试 STDIN

ruby-on-rails - 如何在 ruby​​ 的 http 请求中包含 header

ruby-on-rails - 如何在我的 Rails 应用程序 View 中打印 ruby​​ 变量的内容?

ruby-on-rails - Rails的5的belongs_to_required_by_default不起作用

ruby-on-rails - 如何捕获并记录 Rails View 中的所有异常(.erb 文件)

ruby - 纯 Ruby(非 C)Markdown 库