我使用Mandrill发送电子邮件,我在itinializer中定义了$ m:
$m = Mandrill::API.new 'XmylongkeygoeshereTg'
我需要测试一个发送电子邮件的函数,所以我需要以某种方式在现有对象上存根$m.messages.send
方法。我读到stub_chain
是实现这一目标的一种混乱方式,但即使这样也行不通。我尝试的另一种方式就是使用allow($m.messages).to
:
it "sends emails to a group" do
# stub Mandril's email sending, so no actual emails will be sent.
allow($m.messages).to receive(:send) { nil }
expect(subject.my_sending_emails_method).to be_true
end
虽然没有错误,但也没有留言效果 - 电子邮件仍在发送。
请建议如何存根?
答案 0 :(得分:1)
可能有不止一个答案,但我发现的工作是:
allow($m).to receive_message_chain(:messages, :send) { nil }