RSpec

コントローラーのテストを作りたい!!(Rails)

rails g rspec:controller [controller_name]

これを実行すると

spec/controllers/[controller_name]_spec.rb

というファイルが作成される。

ここのコントローラーの名前を

rails g rspec:controller hoge_controller

としてしまうと、

hoge_controller_controller_spec.rb

になってしまうので注意。

 

出来上がった、hoge_controller_spec.rbを開いてみると、

require 'rails_helper' 

RSpec.describe HogeController, type: :controller do 

end

となっている。

 

Rails5からはcontroller specではなく、request specが推奨されているとのこと。

qiita.com

 

type: :request do

に書き換える。

実行の仕方

rails exec rspec

と入力。

これだとrspec配下のテストをすべて実行するので、

引数に実行したいテストファイルだけを指定することもできる。

rails exec rspec spec/controllers/hoge_controller_spec.rb