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

我想提供應該從這個double返回的響應。 但是這個響應是一個非常長的哈希,我不想混亂我的spec文件。 相反,我想將散列寫入單獨的文件中,並將其用於我的規範 那麼,圍繞什麼是最佳實踐?哪裏把長模擬/存根響應在rspec rails

回答

4

最好實踐將不殘留整個散列。當然你的測試不需要每一行。在每個測試/上下文中,您最好將每個測試需要的幾行代碼排除在外。

如果必須存根整個API,你可以在spec/support創建一個單獨的模塊:

# spec/support/api_stub.rb 

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

由於該文件夾中任何被自動包含,你就可以在你的存根定義中使用ApiStub.response