Ruby on Rails方法控制器中的模拟

我正在尝试在我的一个rails控制器(在这种情况下,Instagram.get_access_token)中模拟对外部API的方法调用,我遇到了一些麻烦。 如上所述,代码仍在调用真正的Instagram.get_access_token方法。 我怎么让控制器使用我的简单模拟?

sessions_controller.rb:

class SessionsController < ApplicationController require 'instagram' include ApplicationHelper def auth_callback response = Instagram.get_access_token(params[:code], redirect_uri: auth_callback_url) # end end 

sessions_controller_spec.rb:

 require 'spec_helper' require 'ostruct' describe SessionsController do describe "GET #auth_callback" do context "when there is an existing user" do let(:response) { OpenStruct.new(access_token: "good_access_token") } it "parses an access_token from the get response" do Instagram.should_receive(:get_access_token).and_return(response) # end end end end 

尝试:

 Instagram.stub(:get_access_token) { response } 

你有相同的结果吗?