[rspec-users] how to deal with redirect_to on cucumber?

Matt Wynne matt at mattwynne.net
Thu May 21 03:34:58 EDT 2009

On 20 May 2009, at 16:43, Zhenning Guan wrote:

> I have a controller name forums and a action like this:
>  def show
>     redirect_to forum_topics_path(:forum_id => params[:id])
>  end
> my scenario is (not completed)
> ==========
> Scenario: User input data correct
>  When I run to the forum 1
> --
> When /^I run to the (.*)$/ do |topic_lists|
>  visit path_to(topic_lists)
> end
> def path_to(page_name)
>    case page_name
>    when /forum 1/
>      forum_path(1)
> ==========
> when I runned rake features
> got a error..
> ++++++++++++++++
> Scenario: User input data correct # features/forums.feature:10
>    When I run to the topic lists   #
> features/step_definitions/forums_steps.rb:10
>      Couldn't find Forum with ID=1 (ActiveRecord::RecordNotFound)
>      /home/ning/blank/app/controllers/topics_controller.rb:71:in
> `load_forum'
>      /usr/lib/ruby/1.8/benchmark.rb:308:in `realtime'
>      (eval):2:in `/^I run to the (.*)$/'
>      features/forums.feature:11:in `When I run to the topic lists'
> ++++++++++++++++++
> so is that redirect_to problems? how to implement the scenario? any
> thought here?

You are trying to visit the page for a 'forum' object (with ID=1) that  
does not exist in your database.

In each scenario, you need to imagine your application starts from a  
completely empty state, just like it would if you started the  
application with script/server.

You need a step in your scenario that says 'Given there is a Forum'  
which creates the record in the database.

If you don't mind me saying so, this question suggests to me that you  
have quite a bit to learn about Cucumber. While people on this list  
are pretty patient and helpful, they are also busy and will be more  
keen to help if you spend some time helping yourself too. I suggest  
you start with the recent railscast on Cucumber.

Matt Wynne

More information about the rspec-users mailing list