Testing ActiveRecord Finders

ActiveRecord provides a rich set of methods that are wrappers around SQL statements sent to your database. These methods are collectively referred to as finders. One great feature of ActiveRecord finders is that they can be composed, allowing you to express a compound statement like “bring me the most recently completed five large tasks” as Task.where(status: completed).order("completed_at DESC").where("size > 3").limit(5).

You can even compose the finders if you extract them to their own methods in pieces:

​ 
​class​ Task < ActiveRecord::Base
​ 
​ 
​def​ self.completed
​ 
where(status: :completed)
​ 
​end​
​ 
​ 
​def​ self.large
​ 
where(​"size > 3"​)
​ 
​end​
​ 
​ ...

Get Rails 4 Test Prescriptions now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.