💭
【🔴RSpecエラー】「Docker」+「Rails6」環境で、request(コントローラー)テスト時に発生する「403」エラーについて
✅当方の環境
- 開発環境 : 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