On Dec 1, 2007 4:27 PM, Scott Taylor <[EMAIL PROTECTED]> wrote: > > On Dec 1, 2007, at 3:45 PM, Francis Hwang wrote: > > > Hi all, > > > > I'm just starting to work w/ RSpec, so I hope this question isn't too > > obvious or missing the point somehow: Is there a way in RSpec to > > specify that a controller action should use a specific HTTP status > > code? Specifically I want to test for the usage of 301 as opposed to > > 302, for a permanent redirection. > > > > response.should be_redirect > > > > looks like it calls ActionController::TestRequest#redirect?, which is > > only testing for a status code from 300..399. In an old-fashioned > > Test::Unit Rails test I could do assert_response, but I can't see > > anything matching that in RSpec. Is there a less-documented feature > > I'm missing? > > > > Thanks, > > > > Francis Hwang > > http://fhwang.net/ > > > > Hey Francis - Great to see you've finally come over from the dark > side (Test::Unit)! How is rspec treating you? > > Anyway - here's how I've done it with a 404: > > describe ErrorController, "view" do > > it "should render the 404 page in public/" do > get :view > response.should render_template("#{RAILS_ROOT}/public/404.html") > end > > it "should return an HTTP status code of 404" do > get :view > response.headers["Status"].should == "404 Not Found" > end > > end
You can also just go right for the response_code: response.response_code.should == 301 > > > I would imagine you could do something similar for 301. I don't > think there are currently any matchers for these status codes like: > should_be_not_found or should_not_be_a_404, although they could > certainly be written. (Method missing seems to be screaming at me > here...) > > Regards, > > Scott Taylor > > > > > > _______________________________________________ > rspec-users mailing list > [email protected] > http://rubyforge.org/mailman/listinfo/rspec-users > _______________________________________________ rspec-users mailing list [email protected] http://rubyforge.org/mailman/listinfo/rspec-users
