2012-08-02 134 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