Hello,
I'm new to rails and I'm trying to wrap my heads around how to spec controllers using RSpec (using rails 3rc1 and rspec 2.0.0.beta.19). The problem I've run into is when I want to test that my controllers respond with a 404 for unfound records. Whenever I run the spec, the ActiveRecord::RecordNotFound exception is not caught by rails, causing the spec example to fail since the exception propagates out of the controller into the spec. >From googling around I get that rails only handles the exceptions and does a 404 response when it's run in production mode, and that you need to call rescue_action_in_public! in your example if you want this behavior for test mode. However, this does not seem to trigger rails into handling this with a redirect to 404 even though the @request.remote_addr gets set to 208.77.188.166. Do I need to set something up for rails to trigger 404 redirecting of RecordNotFound? Or is this not at all the correct way to test missing records? My full example: (using factory_girl, rspec mocks and devise) it "respons with 404 when trying to edit non-existing reads" do rescue_action_in_public! sign_in(@user) Read.should_receive(:find_by_id_and_user_id!).with(2, @user.id).and_raise(ActiveRecord::RecordNotFound) get :edit, :id => 2 response.status.should eql 404 end and the exception: 1) ReadsController resources respons with 404 for non existing reads for GET /reads/2/edit Failure/Error: get :edit, :id => 2 ActiveRecord::RecordNotFound Thanks, /Christoffer -- View this message in context: http://old.nabble.com/testing-404-redirects-in-the-controller-with-rspec-beta-19-tp29385087p29385087.html Sent from the rspec-users mailing list archive at Nabble.com.
_______________________________________________ rspec-users mailing list rspec-users@rubyforge.org http://rubyforge.org/mailman/listinfo/rspec-users