learning factory_girl, shoulda, valid attribute, other tdd tools