我已經寫下了服務對象。如何測試服務對象
class LeadGeneration
def initialize contact_id
@lead = Lead.find_or_initialize_by(contact_id: contact_id)
end
def lead
@lead
end
def activate_lead
lead.active!
end
def stale_lead
lead.stale!
end
end
我對如何測試它有點困惑。我寫了下面的規格
require 'spec_helper'
describe LeadGeneration do
let(:contact) { FactoryGirl.create(:contact) }
it "#activate_lead" do
lg = LeadGeneration.new(contact.id)
expect(lg.lead).to receive(:active!)
lg.activate_lead
end
it "#stale_lead" do
lg = LeadGeneration.new(contact.id)
expect(lg.lead).to receive(:stale!)
lg.stale_lead
end
end
該規範工作正常,但我想這樣做而不暴露生成的鉛。我究竟如何去做這件事。我可以使用
expect(Lead.any_instance).to receive(:active!)
但是從我的閱讀中,這是不好的做法。有什麼想法嗎?
你是什麼意思:「這個規範工作正常,但我想這樣做**而不會暴露生成的潛在客戶**。我到底該如何去做」 – gotva