0
我正在嘗試將我的應用程序與Sendgrid API集成。例如,當用戶註冊時,將用戶的電子郵件添加到Sendgrid。Rspec嘲笑和返回值
截至目前,我有以下測試:
context "painter registers" do
let(:new_painter) {FactoryGirl.build(:painter)}
it "#add_email_to_sendgrid is called" do
new_painter.should_receive(:add_email_to_sendgrid)
new_painter.save
end
it "Sendgrid#add_email called and should return true" do
new_painter.email = "[email protected]"
Sendgrid.should_receive(:add_email).with("[email protected]").and_return(true)
new_painter.save
end
end
對我的畫家模型我有以下幾點:
after_create :add_email_to_sendgrid
def add_email_to_sendgrid
Sendgrid.add_email(self.email)
end
的lib/sendgrid.rb
module Sendgrid
def self.add_email(email_address)
return false
end
end
一切一直工作到Sendgrid.add_email的返回值。
我可以將add_email方法的返回值更改爲任何值,測試仍然會通過。
請指教。
嗨,我認爲你是對的。我不希望創作依賴於服務。我只是想確保它在註冊後被調用。如果還有其他問題,那麼我應該只記錄它們。那麼我的方法似乎是一個問題呢? – Brian
是的,通常電子郵件是使用後臺作業發送的 – apneadiving