0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Controllerをテストする際のBasic認証の組み込み

Posted at

Controllerをテストする際のBasic認証の組み込み

Railsアプリケーションのテストでは、コントローラーのアクションが正常なレスポンスを返すことを確認する必要があります。しかし、時にはBasic認証が必要になることがあります。ここでは、テスト時にBasic認証をパスする方法を示します。

Basic認証のテストを組み込む

Railsのテストスイートでは、特定のアクションが期待どおりの振る舞いをするかを確認することが一般的です。ItemsControllerのindexアクションにリクエストを送り、その応答を検証することを目指します。ただし、このアクションにはBasic認証が必要となります。

require 'rails_helper'

RSpec.describe ItemsController, type: :request do
  describe 'GET #index' do
    it 'indexアクションにリクエストすると正常にレスポンスが返ってくる' do
      # 環境変数からBasic認証情報を取得
      username = ENV["BASIC_AUTH_USER"] 
      password = ENV["BASIC_AUTH_PASSWORD"]
      
      # Basic認証情報を含めたリクエストを送る
      get root_path, headers: { 'HTTP_AUTHORIZATION' => ActionController::HttpAuthentication::Basic.encode_credentials(username, password) }

      # レスポンスが正常に返ってくることを確認
      expect(response.status).to eq 200
    end
  end
end

このテストでは、環境変数からBasic認証情報を取得し、それをリクエストに含めます。そして、アクションが正常に応答するかを検証します。

結論

Railsのテストスイートでは、Basic認証を含むリクエストを送ることで、アプリケーションが正常にBasic認証をパスして適切なレスポンスを返すかどうかを確認することができます。これにより、アプリケーションのセキュリティや動作を保証することができます。

0
2
0

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
0
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?