2

Capybara と Selenium ドライブを使用して Rspec のセッション変数にアクセスすることは可能ですか?

このようなことをするにはどうすればよいですか (私は omniauth-facebook を使用しています)?

require 'spec_helper'

describe 'Api' do
  def login_with_oauth
    visit "/auth/facebook"
  end

  it 'get location count for specific user' do
    login_with_oauth
    @user=User.find(session[:user_id])
    #puts "here is response body: #{response.body}"

Capybara と RSpec でセッション ハッシュを検査する方法を参照 してください。しかし、私が本当に欲しいものを手に入れません。

どうも

4

1 に答える 1

1

私はあなたが実際にセッションを必要としないものを考えると思います。間違っていたらごめんなさい。

これが、 omniauthをテストする方法です。

# spec/spec_helper.rb
OmniAuth.config.test_mode = true
OmniAuth.config.mock_auth[:facebook] = OmniAuth::AuthHash.new
OmniAuth.config.add_mock(:facebook, {
  provider: "facebook",
  uid: "123456",
  info: {
    email: "bruce.wayne@batman.com",
    first_name: "Bruce",
    last_name: "Wayne"
  }
})


# spec/request/api_spec.rb
let!(:user) { create :user, email: "bruce.wayne@batman.com" }

before do
  visit "/auth/facebook"
end

it 'get location count for specific user' do
  user.id # contains your user id
end
于 2012-11-22T16:38:14.520 に答える