api = double "myApi"
api.should_receive(:get_info).and_return({
# a 360 lines hash!
})
我想提供应该从这个替身返回的响应。 但是这个响应是一个非常长的散列,我不想弄乱我的规范文件。 相反,我想将散列写在单独的文件中,并在我的规范中使用它 那么,什么是最佳实践?
最佳答案
最佳 做法是不要清除整个哈希。当然,您的测试不会要求每一行。您最好删除每个测试/上下文中每个测试需要的几行代码。
如果你必须 stub 整个 api,你可以在 spec/support
中创建一个单独的模块:
# spec/support/api_stub.rb
module ApiStub
def self.response
{
# hash
}
end
end
由于该文件夹中的任何内容都会自动包含,因此您可以在 stub 定义中使用 ApiStub.response
。
关于ruby-on-rails - 在 rspec rails 中放置长模拟/ stub 响应的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11779508/