RSpec: featuresディレクトリ内のspecで、直接HTTPリクエストを送信したいとき。
やりたいこと
こんなの
before { delete user_path(user) }
- これは
user_path(user)
にDELETEリクエストを発行する。 - しかし、featuresディレクトリ内のスペックではできない。
解決策
type: :request
をdescribe
の後に付ける。
具体例
describe "submitting a DELETE request to the Users#destroy action", type: :request do before { delete user_path(user) } specify { expect(response).to redirect_to(root_url) } end
個々のエグザンプルに書くのがめんどくさいときは、一番上のものに付けてしまえばよい。
おまけ
逆に、requestディレクトリ内のspecでfeatures用のテストをしたいときは、(Capybaraを使う等)
同様にtype: :features
をつける。