Stubbing RestClient réponse dans RSpec

J'ai la spécification suivante...

  describe "successful POST on /user/create" do
    it "should redirect to dashboard" do
      post '/user/create', {
          :name => "dave",
          :email => "[email protected]",
          :password => "another_pass"
      }
      last_response.should be_redirect
      follow_redirect!
      last_request.url.should == 'http://example.org/dave/dashboard'
    end
  end

La méthode post sur le Sinatra application fait appel à un service externe à l'aide de reste-client. J'ai besoin de quelque sorte stub le reste appel du client de renvoyer les réponses en conserve donc je n'ai pas d'invoquer une réelle HTTP appel.

Mon code de l'application est...

  post '/user/create' do
    user_name = params[:name]
    response = RestClient.post('http://localhost:1885/api/users/', params.to_json, :content_type => :json, :accept => :json)
    if response.code == 200
      redirect to "/#{user_name}/dashboard"
    else
      raise response.to_s
    end
  end

Quelqu'un peut me dire comment je le faire avec RSpec? J'ai Googlé autour et venir à travers de nombreux messages de blog qui gratte la surface, mais je ne peux pas vraiment trouver la réponse. Je suis assez nouveau à RSpec période.

Grâce

OriginalL'auteur RobA2345 | 2013-01-10