February 2018
Intermediate to advanced
406 pages
9h 52m
English
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. ...