2014-12-28 44 views
3

設計sign_in方法應該接受store: false作爲第二個參數,除非我在RSpec和使用Devise::TestHelpers,它似乎沒有問題。設計sign_in方法在RSpec測試中拋出NoMethodError

當我運行從sessions_controller_spec.rb這個測試:

require 'rails_helper' 
describe Api::V1::SessionsController do 
    before(:each) do 
    @user = FactoryGirl.create :user 
    end 
    ... 
    describe 'DELETE #destroy' do 
    before(:each) do 
     sign_in @user, store: false 
     delete :destroy, id: @user.auth_token 
    end 
    it { should respond_with 204 } 
    end 
end 

我得到這個故障: enter image description here

+0

你工作這一個?我有同樣的問題。 – ardochhigh

+0

可惜我沒有,但我肯定會發佈一個答案,如果我找到它。如果你碰巧跨越解決方案運行,你可以這樣做同樣的?我打算最終回到這個項目,但最終還是要完成畢業學校(上學期)第一。感謝您的支持 –

回答

1

我有同樣的問題。根據Devise網站,沒有這樣的方法。 嘗試刪除「store:false」參數並再次運行它。它解決了我的問題。

... 
describe 'DELETE #destroy' do 
before(:each) do 
    sign_in @user 
    delete :destroy, id: @user.auth_token 
end 
it { should respond_with 204 } 
... 

請記住,如果你正在使用RSpec的護欄

RSpec.configure do |config| 
    config.include Devise::TestHelpers, type: :controller 
end 
把以下文件命名規範/支持/ devise.rb內或在你的投機/ spec_helper.rb(或投機/ rails_helper.rb

Take a look on this link