モデルのscopeの、specを記述する

モデルのscopeのspecを記述したいと思ったのですが、「scope rspec」でGoogleで検索したところ、How can i have an rspec test for my default scope: http://stackoverflow.com/questions/6853744/how-can-i-have-an-rspec-test-for-my-default-scope にその答えっぽいのがありました!!

CatMembership.scoped.to_sql.should == CatMembership.order(:created_at).to_sql

そうか!scopeのメソッド呼び出しした結果と、そのメソッドで行うscopeをテストコードでも定義して比較すればいいのか!?
目からウロコでござる。
で、このテストに意味があるのかって?そりゃ、テストファーストの場合はどうかわからないけど、少なくともリファクタリングするときには役立つよね。互換性が保たれていることがチェックできるからね。デグレを防ぐこともできるでしょうね。
いや〜、サンキューでした。
--- 参考URL

--- PR広告
記事を読んでくださり、ありがとうございます。もしよろしければ、この記事の著者が開発・運営している無料のカクテルレシピ提供サービス「かくってる?」をお試しください。