2016-06-07 87 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方法。

相關問題