2014-12-28 3 views
3

Devise sign_in 메소드는 에 있고 Devise::TestHelpers이 아닌 이상 벌금을 부과하는 것으로 보이는 두 번째 매개 변수로 store: false을 승인해야합니다. 내가 sessions_controller_spec.rb에서이 테스트를 실행하면RSpec 테스트에서 sign_in 메소드가 NoMethodError를 던졌습니다.

: 나는이 같은 문제를 가지고있다 enter image description here

+0

당신은? 저도 같은 문제가이 일을 해결 않았다. 나는 그것을 발견하면 – ardochhigh

+0

불행하게도 나는.하지만 확실히 대답을 게시 할 예정입니다하지 않았습니다. 당신이 솔루션을 통해 실행하는 일이 있다면, 당신은 할 수 같은거야? 나는 결국이 프로젝트로 돌아갈 계획이지만 졸업식을 마친다. 학교 (지난 학기)부터. 에 chiming 주셔서 감사합니다. –

답변

1

:

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 

을 나는이 실패를 얻을. 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

관련 문제