rspec - RSpec::ExampleGroups::AdminOrdersController:Class 的未定义方法“设置”
问题描述
spec_helper.rb
RSpec.configure do |config|
config.include Devise::Test::ControllerHelpers, type: :controller
end
rails_helper.rb
ENV['RAILS_ENV'] ||= 'test'
require File.expand_path('../config/environment', __dir__)
abort("The Rails environment is running in production mode!") if Rails.env.production?
require 'rspec/rails'
require 'spec_helper'
require 'support/controller_macros'
# include shared examples
require 'support/shared_examples'
require 'devise'
# Testing inline
require 'sidekiq/testing/inline'
Dir[Rails.root.join('spec/support/*.rb')].each { |f| require f }
# Loading Devise Warden into the controller tests.
RSpec.configure do |config|
config.include Devise::Test::ControllerHelpers, type: :controller
# include fabricators
config.fixture_path = "#{::Rails.root}/spec/fabricators"
end
规格/控制器/管理员/orders_controller_spec.rb
require 'rails_helper'
require_relative '../../support/controller_macros'
describe Admin::OrdersController, :type => :controller do
describe 'GET index' do
@admin = Fabricate(:admin)
setup_admin(@admin)
context 'Admin not logged in' do
it_behaves_like 'requires sign in' do
get :index
end
end
end
end
规范/支持/controller_macros.rb
def setup_admin(a_user = nil)
@request.env["devise.mapping"] = Devise.mappings[:admin]
sign_in a_user || Fabricate(:admin)
end
这是我得到的完整错误堆栈
An error occurred while loading ./spec/controllers/admin/orders_controller_spec.rb.
Failure/Error:
describe Admin::OrdersController, :type => :controller do
describe 'GET index' do
@admin = Fabricate(:admin)
setup_admin(@admin)
context 'Admin not logged in' do
it_behaves_like 'requires sign in' do
get :index
end
end
NoMethodError:
undefined method `setup' for RSpec::ExampleGroups::AdminOrdersController:Class
# /home/riya/.rvm/gems/ruby-2.4.0/gems/devise-4.7.3/lib/devise/test/controller_helpers.rb:30:in `block in <module:ControllerHelpers>'
# ./spec/controllers/admin/orders_controller_spec.rb:4:in `<top (required)>'
No examples found.
Finished in 0.00007 seconds (files took 1.85 seconds to load)
0 examples, 0 failures, 1 error occurred outside of examples
我尝试了所有可能的解决方案,但对我没有任何帮助。
我正在使用 rails-5.2、rspec-3.9、
即使我只运行“rspec”,我也会收到所有规格的这个错误。
解决方案
推荐阅读
- swift - 为什么不建议将 UIImage 数据保存到 UserDefaults?
- php - 子文件夹 htaccess 的 RewriteRule
- c# - 如何在 Asp.Net Core 应用程序中配置 MassTransit Saga
- powershell - PowerShell 工作流做...while 循环..循环
- android - 日期选择器错误
- arrays - 使用包含通配符条件的数组时出现问题
- excel - 从 Excel 运行 powershell 脚本,路径中有空格
- angular - 如何将参数从选项卡容器传递到离子 4 中的一个选项卡
- excel-formula - EXCEL:如何仅使用公式从单元格中提取可变数量的数字,并从提取的数字中找出一个范围?
- django-models - 我创建了一个自定义用户,如何将它们添加到组中?