ume

Rspec フォーマットエラー

エラー遭遇

      Failure/Error: get :home
     
     ActionController::MissingExactTemplate:
       SaralyController#home is missing a template for request formats: text/html

エラーの経緯

簡単な自作アプリをrailsで作成中にrspecのコントローラスペックで「get :homeというリクエストを送ると指定のコントローラーのアクションが反応するのか」をテストしたいと思い以下のような簡単なテストを書き実行した際に遭遇しました。

require 'rails_helper'

RSpec.describe SaralyController, type: :controller do
  describe "#home" do 
    it "responds successfully" do
      get :home
      expect(response).to be_successful
    end
  end
end

結論

gem 'slim-rails'がgemfileのgroup :development do〜end の中に記載がありテスト環境と開発環境でファイルの拡張子が違うものを使うような設定だったのでテスト環境でうまくファイルが読み込めないことが原因でした。 group :development, :test do〜end この間gem 'slim-rails'を入れてbundle installで解決しました