2026年9月20日 / 最終更新日時 : 2026年9月21日 admin Ruby on Rails 変更に強いテストを書く⑦ factoryの設計(揃いすぎないデータ) 前回はspec側でのデータの使い分けでした。今回はfactory側、データそのものをどう作るかです。 何を埋めて何を埋めないか。そしてもう1つ、データが揃いすぎていると検出できないバグがあります。 以前、FactoryB […] FactoryBotRSpec開発手法
2026年9月19日 / 最終更新日時 : 2026年9月21日 admin Ruby on Rails 変更に強いテストを書く⑥ テストデータの使い分け(build/create、let系) 前回まではspecの書き方の話でした。今回はデータを作る側です。 テストデータの扱い方は、実行速度に直結します。そしてlet_it_beのような仕組みを使うと、テスト間でデータが汚染される問題も出てきます。 ActiveRecordFactoryBotRSpec開発手法
2023年7月22日 / 最終更新日時 : 2023年7月23日 admin Ruby on Rails FactoryBot作成のベストプラクティス!? RSpecを結構書いてますが、テストを書く上で、FactoryBotが整備されていると楽ですよね。 ただ、最低限でも過剰でも、テストケースが漏れたりします。 また、無駄にINSERTされて、テストが遅くなったりする事もあ […] FactoryBotRSpec共通化
2023年2月22日 / 最終更新日時 : 2023年2月22日 admin Ruby on Rails FactoryBot:リレーション先でリレーション元と同じidで作成されるようにする なんのこっちゃ? タイトルを上手く書けなかったので、ER図で説明します。 下記のようにtask_cyclesにspace_idを入れなくてもtasksを経由すれば引けるのですが、DBのindexを効率的に利かせたいのと、 […] ActiveRecordFactoryBotRSpec
2022年8月17日 / 最終更新日時 : 2022年8月18日 admin Ruby on Rails let_it_beとbefore_allでRSpecの実行時間を短くする まだそこまで遅くはないですが、将来の為にRSpecの実行時間を短くしておきます。 結果、99.93秒だったのが55.72秒となり、44%短縮されました。(想像以上) RSpecをリファクタリングして可読性と速度を上げる […] FactoryBotRSpecリファクタリング
2021年9月5日 / 最終更新日時 : 2021年9月14日 admin Ruby on Rails RSpecをリファクタリングして可読性と速度を上げる プロジェクトが進んで行くと、どんどんテストに時間が掛かるようになります。 let_it_be(Gem)も良さそうですが、その前に共通化で可読性を上げたり、 使われない処理が走らないようにRSpecを見直しました。 結論、 […] APIDeviseDevise Token AuthFactoryBotRSpecリファクタリング認証
2021年3月11日 / 最終更新日時 : 2022年11月10日 admin Ruby on Rails テスト駆動でちょっとハマった話 みんなテストを書く時、どう進めてますか? 私は完全にテストファーストで作れる程、聡明になれない(ベストなのを探って試行錯誤が入る)ので、先ずは正常系を実装して、正常系のテストを書いて通す。その後、検証パターンを網羅するよ […] FactoryBotMySQLRSpecテスト駆動
2020年8月10日 / 最終更新日時 : 2020年8月14日 admin Ruby on Rails バッチ処理(task)作成とテスト(RSpec)実装 バッチ処理とRSpec実装を行いました。 RSpecのtypeに、taskは用意されていないようで、少し手間取ったのでメモしておきます。 あと、引数を渡した場合、true/falseでも文字列型になるので、工夫が必要だっ […] FactoryBotRakeRSpecトランザクションバッチメール
2020年6月5日 / 最終更新日時 : 2020年6月6日 admin Ruby on Rails rails-controller-testingを使わずにRSpecを書く Rails5からrequest spec推奨になってたのと同時に?、assignsやassert_templateが非推奨になっています。 rails-controller-testingを使う事で、使えてしまうのですが […] FactoryBotRSpecリファクタリング
2020年5月28日 / 最終更新日時 : 2020年6月5日 admin Ruby on Rails RSpecの前提条件と検証内容の共通化 同じような前提条件と検証内容で冗長になって来たので、リファクタリングとして共通化しました。 contextに記載した内容を実現する実装部分(前提条件)は、include_contextで呼び出して、shared_cont […] FactoryBotRSpecリファクタリング可読性