On Mon, Dec 22, 2008 at 11:29 AM, Caius Durling <ca...@caius.name> wrote: > > On 22 Dec 2008, at 17:18, aslak hellesoy wrote: > > Essentially, #create will never raise an error no matter what you pass it, > and you actually want exceptions for bad input in your tests (step > definitions). > Therefore - use #create! (or #save!). In your app, use the non-bang methods. > > Use the bang methods everywhere, but make sure to catch > ActiveRecord::RecordInvalid and ActiveRecord::RecordNotFound either in > rescue_from handlers or within the controller actions themselves. > If you use rescue_from you need to turn on rails_error_handling in rspec's > config though. > C > --- > Caius Durling > ca...@caius.name > +44 (0) 7960 268 100 > http://caius.name/ > > _______________________________________________ > rspec-users mailing list > rspec-users@rubyforge.org > http://rubyforge.org/mailman/listinfo/rspec-users >
I'm a "use the non-bang methods in the app, bang methods in tests" guy. In the app, I don't want an exception to be raised, because validation failures aren't exceptional. if @post.save is good enough to know what happened. In tests though, I want it to fail fast and noisily, so I use bang methods. Pat _______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users