2016-06-07 63 views
0

你好,所以我不断收到这个错误,虽然我尝试了一些解决方案张贴在这里未定义的方法 'sign_in' 的rspec的

规格/支持/ devise.rb

RSpec.configure do |config| 
config.include Devise::Test::ControllerHelpers, type: :controller 
config.include Devise::Test::ControllerHelpers, type: :view 
end 

accounts_spec .RB

require "rails_helper" 

RSpec.describe Api::V1::AccountsController, :type => :controller do 
    describe "GET index no account" do 
    it "has a 403 status code" do 
     get :index 
     expect(response.status).to eq(403) 
    end 
    end 
    describe "GET index with account" do 
    it "has a 200 status code" do 
     sign_in @user 
     get :index 
     expect(response.status).to eq(200) 
    end 
    end 
end 

accounts_controller.rb

class Api::V1::AccountsController < ApplicationController 
    skip_before_action :verify_authenticity_token 

    def index 
     #show user details 
     raise if not current_user 
     render json: { :user => current_user.as_json(:except=>[:created_at, :updated_at, :authorization_token, :provider, :uid, :id])} 
     rescue 
     render nothing: true, status: 403 
    end 

任何想法?我被封锁,第一次测试403作品,但后来我只是不能使用设计的sign_in ...

回答

0

看起来像配置没有运行。 请确保您有包括spec/support/devise.rb通过类似

Dir[Rails.root.join('spec/support/**/*.rb')].each { |f| require f } 

rails_helper.rb

或移动这些config.include s转换rails_helper本身

+0

这些都没有工作。但是我确实发现了问题。将在下面发布 –

0

问题是devise.rb文件。正确的配置线是

config.include Devise::TestHelpers, type: :controller 
    config.include Devise::TestHelpers, type: :view 
0

您可以直接使用这在轨帮手

config.include Devise::TestHelpers, :type => :controller 

要使用sign_in方法。

相关问题