0

Capybaraを使用してアプリの統合テストを作成しようとしています。アプリが正しい出力を表示するには、ログインしているユーザーが特定の役割を持っている必要があります。そして、それは私が立ち往生しているところです。

現在、ログインのモックは次のようになっています。私spec_helper.rbが持っている:

# Trying to configure Capybara to play nice with Omniauth
Capybara.default_host = 'http://example.org'

# Enable omniauth testing mode
OmniAuth.config.test_mode = true

OmniAuth.config.mock_auth[:google] = OmniAuth::AuthHash.new({
                                                                :provider => 'google',
                                                                :uid => '1337',
                                                                :info => {
                                                                    'name' => 'JonnieHallman',
                                                                    'email' => 'jon@test.com'
                                                                }
                                                            })

次に、テスト自体で、ユーザーをログインさせるには、次のようにします。

  before do
    visit root_path
    click_link "Log In"
  end

ここでsave_and_open_page、ユーザーは実際にログインしているが、役割がないために誤った出力を表示していることがわかります。

このモックユーザーに役割を与えるにはどうすればよいですか?いつそうすればいいですか?(明らかに、ログインする前に-しかし、現在の構造では、ユーザーはログイン前のデータベースに存在していなかったと思います。そうですか?)

どんなヒントでも大歓迎です。

4

0 に答える 0