2011-10-22 3 views
0

다른 오브젝트의 메소드 (IO # delete)를 여러 번 호출하는 오브젝트 (샘플) 스펙을 작성 중입니다.메소드의 특정 호출로 스펙 분리

은 내가 이렇게 그러나 때,이 방법의 테스트를 분리하려면 : 나는 여러 방법을 호출하면 내가 널 개체 패턴을 사용하고 있기 때문에

class Sample 
    def delete_them 
    io.delete "file1" 
    io.delete "folder1" 
    end 
end 

describe Sample do 
    let(:io) { stub.as_null_object } 
    subject { Sample.new.tap { |s| s.stub(:io).and_return(io) }} 

    it "deletes file1" do 
    io.should_receive(:delete).with("file1") 
    subject.delete_them 
    end 

    it "deletes folder1" do 
    io.should_receive(:delete).with("folder1") 
    subject.delete_them 
    end 
end 

는 문제가되지 않습니다. 그러나, 나는 두 번째 테스트 실행이 경우, 불평 :

1) Sample instance methods#delete_them deletes folder1 
    Failure/Error: io.should_receive(:delete).with("folder1") 
    Stub received :delete with unexpected arguments 
     expected: ("folder1") 
      got: ("file1") 

모든 통화를 제외하고 내가 수행되고 있는지 확인하기 위해 애 쓰고 하나를 을 무시해야 함을 표시하는 방법이 있나요?

답변

0

이 코드는 정상적으로 컴파일됩니다. 제 문제를 일으키는 또 다른 문제였습니다.