What’s the Problem?

What’s the big deal if I want to use normal, ordinary ActiveRecord#create in my tests? I use it in my code. What could go wrong?

Since you asked…

We’ll start with a simple test involving two users:

​ 
it ​"can tell which user is older"​ ​do​
​ 
eldest = User.create(date_of_birth: ​'1971-01-22'​)
​ 
youngest = User.create(date_of_birth: ​'1973-08-31'​)
​ 
expect(User.find_eldest).to eq(eldest)
​ 
expect(User.find_youngest).to eq(youngest)
​ 
​end​

That test is deliberately simple, so as not to distract from the data-creation issue. The only weird thing here is that we are testing a hypothetical finder method, find_eldest, that actually goes into the database, so it’s necessary for the ...

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.