トップ «前の日記(2018-06-15) 最新 次の日記(2018-06-29)» 編集

2018-06-24 [長年日記]

_ 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 を使うメリットはある
    1. view の render が自動で走るので response body も何の前準備もなしに取得できる
    2. Feature Spec ではないので Capybara の語彙に縛られずにいきなり Post できる

ごく簡単に言うと まず API を叩いて response を確認するといったことが普通にできる。地味かもしれないけどこれが助かるシーンは確かに今後増えそうだ。