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.