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