加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – “无法自动加载常量”使用rspec但不是rails

发布时间:2020-12-17 02:06:20 所属栏目:百科 来源:网络整理
导读:我有这个文件,我想测试一下. 应用程序/工人/站/ http.rb module Worker module Station class HTTP # ... end endend 这是我的spec文件. 规格/工人/站/ http_spec.rb describe Worker::Station::HTTP do it "should do something" do end end 现在的问题是我
我有这个文件,我想测试一下.

应用程序/工人/站/ http.rb

module Worker
  module Station
    class HTTP
      # ...
    end
  end
end

这是我的spec文件.

规格/工人/站/ http_spec.rb

describe Worker::Station::HTTP do
  it "should do something"  do
  end 
end

现在的问题是我在使用rspec运行spec文件时遇到以下错误.

rspec spec / workers / station / http_spec.rb

/Users/linus/.rvm/gems/ruby-2.0.0-p247@global/gems/activesupport-4.0.4/lib/active_support/dependencies.rb:464:in `load_missing_constant': Unable to autoload constant Station::HTTP,expected app/workers/station/http.rb to define it (LoadError)
  from /Users/linus/.rvm/gems/ruby-2.0.0-p247@global/gems/activesupport-4.0.4/lib/active_support/dependencies.rb:184:in `const_missing'
  from spec/workers/station/http_spec.rb:3:in `<top (required)>'
  from /Users/linus/.rvm/gems/ruby-2.0.0-p247@global/gems/activesupport-4.0.4/lib/active_support/dependencies.rb:223:in `load'
  from /Users/linus/.rvm/gems/ruby-2.0.0-p247@global/gems/activesupport-4.0.4/lib/active_support/dependencies.rb:223:in `block in load'
  from /Users/linus/.rvm/gems/ruby-2.0.0-p247@global/gems/activesupport-4.0.4/lib/active_support/dependencies.rb:214:in `load_dependency'
  from /Users/linus/.rvm/gems/ruby-2.0.0-p247@global/gems/activesupport-4.0.4/lib/active_support/dependencies.rb:223:in `load'
  from /Users/linus/.rvm/gems/ruby-2.0.0-p247@global/gems/rspec-core-2.14.8/lib/rspec/core/configuration.rb:896:in `block in load_spec_files'
  from /Users/linus/.rvm/gems/ruby-2.0.0-p247@global/gems/rspec-core-2.14.8/lib/rspec/core/configuration.rb:896:in `each'
  from /Users/linus/.rvm/gems/ruby-2.0.0-p247@global/gems/rspec-core-2.14.8/lib/rspec/core/configuration.rb:896:in `load_spec_files'
  from /Users/linus/.rvm/gems/ruby-2.0.0-p247@global/gems/rspec-core-2.14.8/lib/rspec/core/command_line.rb:22:in `run'
  from /Users/linus/.rvm/gems/ruby-2.0.0-p247@global/gems/rspec-core-2.14.8/lib/rspec/core/runner.rb:80:in `run'
  from /Users/linus/.rvm/gems/ruby-2.0.0-p247@global/gems/rspec-core-2.14.8/lib/rspec/core/runner.rb:17:in `block in autorun'
  from /Users/linus/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'
  from /Users/linus/.rvm/rubies/ruby-2.0.0-p247/lib/ruby/site_ruby/2.0.0/rubygems/core_ext/kernel_require.rb:55:in `require'

奇怪的是,每个人都在控制台中工作.

????$rails c
????[1] pry(主要)>工人::站:: HTTP
????=>工人::站:: HTTP

为什么这会发生在使用rspec而不是在rails中,我将如何修复它?

我正在使用

>铁轨(4.0.4)
> rspec(2.14.1)

解决方法

正如jfornoff建议您可以使用类似以下语句的规则向规范添加require语句:

需要“app / workers / station / http”

但是,如果您使用的是Spring Rails应用程序预加载器并且上述方法无法解决问题,您还可以检查Spring是否需要重新启动.您可以在不使用Spring的情况下测试运行规范,如下所示:

捆绑exec rspec spec / workers / station / http_spec.rb

… 要么 …

spring stop # or bin/spring stop
rspec spec/workers/station/http_spec.rb

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读