On 07/20/2013 08:20 AM, Robert Lis wrote:
> I have an issue with testing error codes. If a record is not found, it
> raises exception ActiveRecord::RecordNotFound. The thing is, I wanna
> check if 404 is returned. If I go ahead and just check :
> 
>  response.status.should == 404
> 
> Then this will make the test case fail as RecordNotFound exception is
> thrown and not caught. If I go ahead and say
> 
> expect {<call controller action>}.to
> raise_error(ActiveRecord::RecordNotFound)
> 
> and then check for the status code, then it will fail again, as this
> catches the exception and the response code is 200.
> 
> How should I test if 404 is returned in this kind of case ?

You'll need to go up a level and use a request or feature spec.
Controller specs don't run through the full stack, so you get the lower
level exception ... not a 404.

It's a bit confusing, I agree. Controllers are a weird thing in the
first place :/
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to