は、私が今、私はMailchimpと通信するhominidを統合しています、rspec-mock
にちょっと新たなんだ、私は私の要求が実際にMailchimpに行かないので、いくつかのメソッド呼び出しをスタブしたいです。ここで私は?
のconfig/initilizers/mailchimp.rbをやっている
MAILCHIMP = Hominid::API.new(ENV['MAILCHIMP_API_KEY'])
LIST_ID = ENV['MAILCHIMP_LIST_ID']
user.rb
class User < ActiveRecord::Base
before_create :add_subscription
private
def add_subscription
MAILCHIMP.list_subscribe(LIST_ID, .......) # Some params following
end
end
ご覧のように、作成したすべてのユーザーのために、 list_subscribe
今私はUser
はどこでも使用されたため、実際にすべてのテストに呼ばれたlist_subscribe
をしたくないので、私は設定ファイル、MAILCHIMP
を呼び出すになります世界的にこのようなスタブ:私はlist_subscribe
が呼び出された場合、いくつかの予期しない要求はに行きますので、list_subscribe
を呼び出すちょうどtrue
を返さないMAILCHIMP
インスタンスを期待
RSpec.configure do |config|
config.before(:each) do
allow_any_instance_of(Hominid::API).to receive(:list_subscribe).and_return(true)
end
end
スペック/ spec_helper.rb Mailchimp、私はこれを防止したい。しかし、私の上記のコードは動作しません、私は間違っていますか?これを修正するには?
また、その答えは、私は任意のヘルプ&提案に感謝おそらくここに私の場合How should I stub a method globally using RSpec?
に似ていますか?ありがとう!