2012-08-02 2 views
2
api = double "myApi" 
api.should_receive(:get_info).and_return({ 
    # a 360 lines hash! 
}) 

이 이중에서 반환해야하는 응답을 제공하고 싶습니다. 그러나이 응답은 매우 긴 해시이며 내 사양 파일을 어지럽히고 싶지 않습니다. 대신 해시를 별도의 파일로 작성하여 내 사양에 사용하려고합니다. 그럼 모범 사례는 무엇입니까?rspec 레일에 긴 모의/스텁 응답을 넣을 곳

답변

4

연습은 전체 해시를 스텁링하지 않는 것이 좋습니다. 분명히 당신의 테스트는 각각의 모든 라인을 필요로하지 않을 것입니다. 각 테스트가 각 테스트/컨텍스트에서 필요로하는 몇 줄을 더 잘 뽑아내는 것이 좋습니다. 당신이 전체 API를 스텁해야하는 경우

, 당신은 spec/support에 별도의 모듈을 만들 수 있습니다 그 폴더에 아무것도가 자동으로 포함됩니다 이후

# spec/support/api_stub.rb 

module ApiStub 
    def self.response 
    { 
     # hash 
    } 
    end 
end 

, 당신은 다음 스텁 정의에 ApiStub.response를 사용할 수 있습니다.