Retrieve new object from association, not class
When testing, you might do something like:
@user.make_widget
expect(Widget.last.color).to eql Widget.DEFAULT_COLOR
Don't. There might be some reason why the new widget isn't the "last" one, such as if the default sort order of Widgets is not chronological and there are other Widgets existing. (Yes, a test should start with a clean database, but on a recent project I had to run tests that were cleaned by transaction, and tests that were cleaned by truncation, against the same database. The last truncated test would leave its garbage in the database.) Instead, test:
@user.make_widget
expect(@user.widgets.last.color).to eql Widget.DEFAULT_COLOR
That way, preexisting widgets should not interfere, if you've forgotten to start with a clean database.
Written by Dave Aronson
Related protips
Have a fresh tip? Share with Coderwall community!
Post
Post a tip
Best
#Ruby
Authors
Sponsored by #native_company# — Learn More
#native_title#
#native_desc#