ruby - What is the difference between double and spy? -
i'm reading spies , can't see de difference between this:
rspec.describe "have_received" "passes when message has been received" invitation = spy('invitation', deliver: "ok") invitation.deliver expect(invitation).to have_received(:deliver) end end and this:
rspec.describe "have_received" "passes when message has been received" invitation = double('invitation', deliver: "ok") invitation.deliver expect(invitation).to have_received(:deliver) end end both examples passes without problem. can't see advantage using spy
as @max said in comments, difference can use spy without deliver: "ok". so, running this:
rspec.describe "have_received" "passes when message has been received" invitation = spy('invitation') invitation.deliver expect(invitation).to have_received(:deliver) end end rspec.describe "have_received" "passes when message has been received" invitation = double('invitation') invitation.deliver expect(invitation).to have_received(:deliver) end end the first example pass not second.
now understand means...
"you can use test double (or partial double) spy, double must setup spy on messages care about. spies automatically spy on messages, or can allow message spy on it."

Comments
Post a Comment