tips chips

日々の作業で出てきた技術メモの切れ端を置いておくページ

[ダメでした]Rails 特定のmodelに対するクエリが実行されないことをテストする

結局うまく行っていない。

下記失敗している。Gemならいけたのかもしれない。

実装読もうとしたけど結構難解だったので後回し。


パフォーマンスの観点などから特定の条件の場合にのみ、あるテーブルに対してクエリを投げるというようなコードを書いていると、結果が正しいことに加えて、クエリ抑制がちゃんと効いているかをテストしたくなることがある。

その時のやり方

SomeModel.should_not_receive(:connect)

これで良いとのこと。

https://stackoverflow.com/questions/13416671/using-rails-and-rspec-how-do-you-test-that-the-database-is-not-touched-by-a-met

上記を参考にしたが、他のやり方も紹介されているので後で読む。