Test Redirection with RSpec and Capybara (Rails)

capybara, rspec, ruby-on-rails

Solution

Try `current_path.should == "/projects/show"`

Capybara also implements a `current_url` method for the fully qualified URL.

More info in the docs.

EDIT

Capybara now has a RSpec matcher called have_current_path, which you can use like: `expect(page).to have_current_path(some_other_page_path)` (thanks @bjliu)

Problem

I just have learnt how cool RSpec and Cabybara is, and now working around it to learn writing actual test. I am trying to check if after clicking a link, there is a redirection to a specific page. Below is the scenario ``` 1) I have a page /projects/list - I have an anchor with html "Back" and it links to /projects/show Below is the test i wrote in rspec describe "Sample" do describe "GET /projects/list" do it "sample test" do visit "/projects/list" click_link "Back" assert_redirected_to "/projects/show" end end end ``` The test fails with a failure message like below ``` Failure/Error: assert_redirected_to "/projects/show" ArgumentError: @request must be an ActionDispatch::Request ``` Please suggest me on how i should test the redirection and what am i doing wrong?

Original source