2016-11-19 21 views
1

rspecでユーザー認証をテストしているときに問題が発生しています。ここRspec - ユーザーコントロールのテスト中に構文エラーが発生する

が私のコードです:私は、端末上でRSpecのを実行すると

require 'rails_helper' 

describe UsersController, :type => :controller do 

    let(:user) { User.create!(email: '[email protected]', password: '123456') } 

    describe 'GET #show' do 

    context 'User is logged in' do 
     before 
     sign_in user 
     get :show 
     end 

     it "loads correct user details" do 
     expect(assigns(:user)).to eq user 
     end 

    end 

    context 'No user is logged in' do 
     it 'redirects to login' do 
     get :show, id: user.id 
     expect(response).to redirect_to(root_path) 
     end 
    end 
    end 

end 

私はこのエラーを取得:

/Users/joao1/.rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:287:in `load': /Users/joao1/Desktop/nameofapp/spec/controllers/users_controller_spec.rb:29: syntax error, unexpected keyword_end, expecting end-of-input (SyntaxError) 
    from /Users/joao1/.rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:287:in `block in load' 
    from /Users/joao1/.rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:259:in `load_dependency' 
    from /Users/joao1/.rvm/gems/ruby-2.3.0/gems/activesupport-5.0.0.1/lib/active_support/dependencies.rb:287:in `load' 
    from /Users/joao1/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.5.4/lib/rspec/core/configuration.rb:1435:in `block in load_spec_files' 
    from /Users/joao1/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.5.4/lib/rspec/core/configuration.rb:1433:in `each' 
    from /Users/joao1/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.5.4/lib/rspec/core/configuration.rb:1433:in `load_spec_files' 
    from /Users/joao1/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:100:in `setup' 
    from /Users/joao1/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:86:in `run' 
    from /Users/joao1/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:71:in `run' 
    from /Users/joao1/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.5.4/lib/rspec/core/runner.rb:45:in `invoke' 
    from /Users/joao1/.rvm/gems/ruby-2.3.0/gems/rspec-core-3.5.4/exe/rspec:4:in `<top (required)>' 
    from /Users/joao1/.rvm/gems/ruby-2.3.0/bin/rspec:23:in `load' 
    from /Users/joao1/.rvm/gems/ruby-2.3.0/bin/rspec:23:in `<main>' 
    from /Users/joao1/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `eval' 
    from /Users/joao1/.rvm/gems/ruby-2.3.0/bin/ruby_executable_hooks:15:in `<main>' 

は、どのように私はこの問題を解決し、効果的に自分のユーザー認証をテストすることができますか?

答えて

1

エラーメッセージは、プログラムのタイプミスの結果であり、終了ブロックと一致しません。より注意深く見ると、あなたは前のブロックからdoステートメントが欠けているのが分かります。それを変更してください:

before do 
    sign_in user 
    get :show 
end 
+0

ありがとうございました。 –

+0

私はコード上でうぬぼれがありましたが、少なくともテストは実行されました。ありがとうございます –

+0

あなたは大歓迎です:) – David

関連する問題