Everyday Rails - RSpecによるRailsテスト入門 を読んだ感想!

はじめに

こんにちは!Akira(彰)です! 今回は Everyday Rails - RSpecによるRailsテスト入門 を読んだ感想を

  • 良かったところ
  • 学んだこと
  • 難しかったこと

に分けて書いていきたいと思います!

良かったところ

既にアプリケーションが用意されておりハンズオンで学べる

本書にはテストを実行するためのアプリケーションが用意されており、Github上からcloneできるため自身でアプリケーションを作成する必要がなく、スムーズにハンズオンで学ぶ環境を整えることができました。

テスト独自の書き方のお作法を知れる

通常のDRY原則に拘らずにテストならではのリファクタリング方法や可読性を重視した書き方を知れました。

テスト駆動開発の流れを知れる

テスト駆動開発を用いて実際に開発する流れとテスト駆動開発で得られるメリットを学べました。

演習問題がある

演習問題を用い自分でコードを考えることで理解をさらに深めることができました。

学んだこと

モデルに対するテスト

モデルに対するテストから入り、RSpecの基本的な文法やお作法について学ぶことができました。

テストデータ

FactroyBotを用いたテストデータの作成や重複データをリファクタリングする際のノウハウ等を学べました。

コントローラーテスト

意識するレベルは低いものの、コントローラテストの方法やJSONでのレスポンスを扱うテスト方法について学びました。

システム(総合)テスト

モデルとコントローラーが一緒に正しく動作することをテストする方法として capybaraselenium-webdriver を用いたUIテストについて学びました。

リクエスト(API)テスト

APIテストの書き方や、現在はコントローラをテストするよりもシステム&リクエストを主にテストするほうが良いということについて学びました。

DRY原則について

書いたテストをDRY原則を用いてリファクタリングする方法、その際ある程度DRY原則を外してでも可読性を重視する場合があるというパターンについて学びました。

テストのスピード向上

テストスピードを向上させる為のgemやタグを使ったテクニックについて学びました。

他機能のテスト

ActiveStorageやMailerのテストをどこまで担当するべきかの考え方について学びました。

テスト駆動開発

テスト駆動開発を実際に体験しながらテストベースでの開発におけるメリットを学ぶことができました。

難しかったこと

文法

テストにおける記述法が英文ベースなため、可読性の高いテストを書くためにはある程度自然な英文を習得する必要があると感じました。

リファクタリング

リファクタリングできる要素が多そうなのと可読性を上げるためにある程度セオリーから外れる場合がある等、少し慣れるのに時間のかかりそうな物が多そうだと感じます。

おわりに

本書を読み、個人的にはテスト駆動開発のメリットが目から鱗でした。
特にリファクタリングをする際にテストを意識すると考え方が変わりそうなのと、要件定義の漏れが少なくなりそうという面で自分での開発にもなるべく取り入れるようにしていきたいと思います!
以上が Everyday Rails - RSpecによるRailsテスト入門 を読んだ感想でした!読んできただきありがとうございました!