以下是我的问题我已经安装了Rspec启动了一个项目,每次我想要测试一些必须require_relative
它现在这不是问题,直到我想最终测试我的控制器并且不能似乎让函数get
,post
经常出现undefined function
错误。
如果我把我的控制器放在这个
RSpec.describe ApplicationController, :type => :controller do
end
我收到uninitialized constant ApplicationController (NameError)
如果我需要相关应用程序控制器require_relative '../../app/controllers/application_controller'
我得到uninitialized constant ActionController (NameError)
。
似乎无法捕捉到问题的所在,我的Gemfile
也是
gem "rspec-rails", :group => [:test, :development]
gem "rspec", :group => [:test, :development]
group :test do
gem "capybara"
gem "factory_girl_rails"
end
我一直在浏览互联网2个小时现在至少看了10个其他stackoverflow问题尝试了一切,但似乎没有任何工作......
无处不在,我检查他们说我只需要添加require 'spec_helper'
,它应该可以工作但不是。
如果需要,我也可以复制我的rails_helper文件,但是当我运行rails generate rspec:install
时,我可以复制它的标准。
非常感谢您的帮助我真的需要解决这个问题,因为我的时间不多了。
答案 0 :(得分:2)
从rspec-rails 3开始,自动生成的spec_helper.rb分为两部分:spec_helper.rb和rails_helper.rb
这个想法是你可以拥有不需要加载rails的规范(因此加载速度快)以及需要加载rails的规范
对于需要加载rails的那些,就像你需要的控制器规范一样
require 'rails_helper'
在顶部,而不是要求spec_helper。