On Tue, Mar 18, 2008 at 11:13 PM, linojon <[EMAIL PROTECTED]> wrote:
> Hi, whats the correct way to spec a rescue? This will raise it but doesnt
> test my code's response
>
>
>
> # controller
>
>   def edit
>     @foo = Foo.find(params[:id])
>   rescue
>     flash[:notice] = "Unknown foo #{params[:id]}"
>     redirect_to foos_path
>   end
>
>
> # spec
>
>   it "should flash error if not found" do
>     Foo.should_receive(:find).and_raise
>     get :edit, :id => '1'
>     flash[:notice].should == "Unknown foo 1"
>   end
>
> # run
>
> Exception in...
>
>

I have done a very similar thing:

   Foo.should_receive(:find).and_raise ActiveRecord::ActiveRecordError

and then change your rescue to handle ActiveRecord::ActiveRecordError.

If you get to the point where you have a generic way you'd like to
handle the exceptions in a controller, or across controllers look into
using the controller class method rescue_from.

I'm not 100% this is what you were asking, hopefully you were just
looking for confirmation,

-- 
Zach Dennis
http://www.continuousthinking.com
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to