RSpecの本はすごく前にThe RSpec Bookを読んでいたけれど、もうすでにだいぶ古いし、他の人に薦められるかってのと自分が知らないことが書いてあるかもってことで、Everyday Rails RSpecによるRailsテスト入門を買って読んでみた。
とはいえ、買っていたのは何時だっただろうか…。半年前くらいだっただろうか…。積読の解消がなかなか終わりません。EBookだと尚更。
テストの書き方だけでなく、テストを書くための指針が分かる
慣れたもんだと何をテストすればいいかは自ずと分かっているのである程度雰囲気でガシガシ書いていけるのだけれど、慣れていないとどこまでテストを書くべきなのか、とか、どこからテストを書くべきなのか、がわからないかと思う。まぁRailsの場合は普通はModelから書いていくと思うが、そのあたりも押さえてある。そして、ControllerSpecとRequestSpecについてや、FeatureSpecについて、付録ではSystemSpecについても書いてあった。Viewのテストはしないってのも、現実的。まぁしないというよりはFeatureSpecでやるって話だけれども。
TDDにも踏み込んでいて、そのときはFeatureSpecから書いていってて、それもまたいいと思った。写経すればTDDを体験できる。
そして、モックとスタブの話もあってよかった。私は未だに何気に混乱する…。モックとスタブって、時々しか書かないからっていうのはあるけれど。そして、モックとスタブを使うときの指針についても書いてあった。概ね同意だけれど、まぁActiveRecordの振舞をスタブ化することはあるかなぁと思う。
FactoryBotの解説がよかった
FactoryBotでデータを準備するときの書き方が色々解説されていてよかった。traitとか、こういうのは本当に使いたいときに調べない限りなかなか目に付かないので、先に教えられると嬉しい情報だと思う。RequestSpecで使えるFactoryBot.attributes_for
は多分使ったことがなかったと思うので、今後使っていきたい。
SystemSpecにしていこうと思った
うちのプロジェクトはRails 6.0系だけれど、まだFeatureSpecを使っているので、付録のSystemSpecへの移行を見ながらやっていこうと思った。こういう記事は何気に嬉しい。
感想
後輩の指導にも使えそうだし、自分にも学びがあってよかった。正直Railsをやってると、実装よりもテストを書くほうが時間がかかるときがあったりするので、テストを効率的に書けるようになるのは非常に重要だと思っている。しかしRSpecについて学ぼうとすると、この本かThe RSpec Bookだと思うのだけれど、The RSpec Bookは古すぎるので、この本を自信を持ってお薦めしていきたい。
テストのリファクタリングやっていこうかなぁ~という気持ちになった。