2016-07-15 6 views
2

나는 약 spies를 읽고 그리고 난 데이 차이 볼 수 없습니다 :이중과 스파이의 차이점은 무엇입니까?

RSpec.describe "have_received" do 
    it "passes when the message has been received" do 
    invitation = spy('invitation', deliver: "ok") 
    invitation.deliver 
    expect(invitation).to have_received(:deliver) 
    end 
end 

그리고이 :

RSpec.describe "have_received" do 
    it "passes when the message has been received" do 
    invitation = double('invitation', deliver: "ok") 
    invitation.deliver 
    expect(invitation).to have_received(:deliver) 
    end 
end 

두 예제는 문제없이 통과합니다. 나는 어떤 이점도 볼 수 없다. spy

+1

나는 이것을 시험해 보지 않았지만 틀릴 수도있다. 그러나 스파이 예제에서 당신은'invitation = spy ('invitation')'이라고 부를 수 있고'deliver '를하지 않고'.deliver'를 부를 수 있다고 생각한다. : "오케이". –

답변

0

@max가 언급 한 바와 같이, 차이점은 spy을 사용할 수 있다는 것이다 (말하자면 deliver: "ok"). 따라서 다음을 실행하십시오.

첫 번째 예는 통과하지만 두 번째는 통과하지 못합니다.

enter image description here

는 지금은

는 "당신은 스파이로 이중 (또는 이중 일부) 모든 테스트를 사용할 수 있습니다 ...이게 무슨 뜻인지 이해하지만, 두 배는 메시지를 감시하도록 설정해야합니다 스파이가 자동으로 모든 메시지에 대해 스파이를하거나 스파이웨어에 대한 메시지를 허용 할 수 있습니다. "