LoginSignup
1
2

More than 3 years have passed since last update.

Basic認証を結合テストコードで通す方法

Posted at

参考にさせていただいた記事

ユーザー登録の結合テストコードを実装しようとしたところBasic認証を入れていたことを忘れていました。

実装手順

1:自身で設定した環境変数を変数に入れる

users_apec.rb
def basic_pass(path)
  username = ENV["BASIC_AUTH_USER"]
  password = ENV["BASIC_AUTH_PASSWORD"]
  visit "http://#{username}:#{password}@#{Capybara.current_session.server.host}:#{Capybara.current_session.server.port}#{path}"
end

visitを使用して環境変数を入力するためのURLに遷移すればOKとのことでした!

2:結合テストが読み込まれる前にbasic_pathを読み込ませる

users_spec.rb
# 省略
RSpec.describe "ユーザー新規登録", type: :system do
  before do
    @user = FactoryBot.build(:user)
  end
  context 'ユーザー新規登録ができるとき' do
    it '正しい情報を入力すればユーザー新規登録ができてトップページへ移動する'do
    # トップページへ移動する
    basic_pass root_path
    visit root_path
# 省略

自分の場合はroot_pathから新規登録画面に遷移するため、

basic_pass root_path

としています!

備忘録もかねて投稿しました。

1
2
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2