On 31 January 2010 22:02, Nick Hoffman <li...@ruby-forum.com> wrote:

> One of my controller actions sends a redirect if the request URI begins
> with /foods/search
>
>  34  def search
>  35    return redirect_to "/#{params[:name]}" if
> request.request_uri.match /^\/foods\/search/
>
> Unfortunately, I can't figure out how to spec this.
>
> >From everything that I've read while researching this problem, it seems
> that #get and #post only accept the action to call, and a hash of
> parameters. IE:
>  get :action, :some => 'param'
> As a result, I can't do this:
>  121  it 'redirects /foods/search/almonds to /almonds' do
>  122    get '/foods/search/almonds'
>  123    response.should redirect_to "/almonds"
>  124  end
>
> How can I spec this?
>
> Thanks for your help,
> Nick
> --
> Posted via http://www.ruby-forum.com/.
> _______________________________________________
> rspec-users mailing list
> rspec-users@rubyforge.org
> http://rubyforge.org/mailman/listinfo/rspec-users
>

You might find this easier to do as an integration test. I'd use cucumber
for this. Personally I think speccing controllers is pretty hard for the
benefits it gives, and if you keep your controllers real simple and thin and
use cucumber you can discard most controller specs.
_______________________________________________
rspec-users mailing list
rspec-users@rubyforge.org
http://rubyforge.org/mailman/listinfo/rspec-users

Reply via email to