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 …

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

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

That test is deliberately simple so as not to distract from the data-creation issue. The only weird thing here is that I’m testing a hypothetical finder method, eldest, that goes into the database, so for the test it’s necessary that the objects I create come from the database. ...

Get Rails 5 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.