RSpec 3.5のRequest Spec使ってみた
おじさんのためのRSpecとRequest Specの歴史ふり返り
- RSpec にはもともと Request Spec はあった
- Capybara 1.x 時代は Request Spec + Capybara という組み合わせはアリだったが、Capybara 2.x 時代には Feature Spec と組み合わせてくれという話になり、そっちが流行った
- Feature Spec の登場は RSpec 2.14
- この頃同時に RSpec 3 へ向けて should が expect なるぞーなど RSpec に疲れた人が増える(脱線)
- RSpec 3.5 で Request Spec は以前に比べて高速化したのを期に Controller Spec じゃなくて Request Spec オススメだよ宣言
使ってみた感想
- いくら速くなったとは言え、Controller Spec よりは明らかに重い
- ただし多少の遅さは我慢のうえで Request Spec を使うメリットはある
- view の render が自動で走るので response body も何の前準備もなしに取得できる
- Feature Spec ではないので Capybara の語彙に縛られずにいきなり Post できる
ごく簡単に言うと まず API を叩いて response を確認するといったことが普通にできる。地味かもしれないけどこれが助かるシーンは確かに今後増えそうだ。