0

Rails コントローラーの 1 つ (この場合は Instagram.get_access_token) 内の外部 API へのメソッド呼び出しをモックしようとしていますが、問題が発生しています。書かれているように、コードはまだ実際の Instagram.get_access_token メソッドを呼び出しています。コントローラーに単純なモックを代わりに使用させるにはどうすればよいですか?

セッションコントローラー.rb:

class SessionsController < ApplicationController

  require 'instagram'
  include ApplicationHelper

  def auth_callback
    response = Instagram.get_access_token(params[:code],
                                          redirect_uri: auth_callback_url)
    #<snipped extra code>
  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)

        #<snipped extra code>
      end
    end
  end
end
4

1 に答える 1

0

試す:

Instagram.stub(:get_access_token) { response }

あなたは同じ結果を持っていますか?

于 2013-05-18T20:54:45.583 に答える