simanのブログ

ゆるふわプログラマー。競技プログラミングやってます。Ruby好き

Rails + RSpec + Capybaraでbasic認証をパスする

コントローラ内でbefore_filterを使って実装されたBasic認証をパスするのにやたら時間をかけてしまったので、自分用にメモを残しておく。

page.driver.browser.authorize('username','password')

これをvisitとかの前に宣言しておくと、Basic認証をパスすることが出来る。

page.driver.browser.authorize('username','password')
visit '/'

追記(2015/12/04)

上の手法だと失敗するようになってました

encoded_login = ['username:password'].pack('m*')
page.driver.headers = {'Authorization' => "Basic #{encoded_login}"}

これもいつか失敗するかもしれません