💭

【🔴RSpecエラー】「Docker」+「Rails6」環境で、request(コントローラー)テスト時に発生する「403」エラーについて

2022/08/12に公開

✅当方の環境

  • 開発環境 : Docker
  • ruby 2.7.5
  • rails 6.1.5

✅Gemの内容(必要なもののみ)

Gemfile
<中略>

group :development, :test do
  gem 'pry-rails'
  gem "rspec-rails", "~> 4.0.1"
  gem 'factory_bot_rails', '~> 5.0'
end

<中略>

group :test do
  gem 'capybara', '~> 3.28'
  gem 'selenium-webdriver', '~> 3.142'
  # gem 'webdrivers', '~> 4.1' 
 #「webdrivers」は、Docker上では使用しません。(以前は、chromedriver-helperという名称)
end

<中略>

✅ エラー内容

  • 「bundle exec rspec」コマンドのエラー内容
Failure/Error: expect(response).to have_http_status(200)
expected the response to have status code 200 but it was 403

✅エラー発生箇所

app\spec/requests/food_enquete_spec.rb
get food_enquetes_path
expect(response).to have_http_status(200)

✅解決法

  • 「rails_helper.rb」を修正する
app\spec\rails_helper.rb
ENV['RAILS_ENV'] ||= 'test' #修正前
ENV['RAILS_ENV'] = 'test' #修正後

✅エラー原因

Discussion