3
api = double "myApi"
api.should_receive(:get_info).and_return({
  # a 360 lines hash!
})

我想提供应该从这个双精度返回的响应。但是这个响应是一个很长的散列,我不想弄乱我的规范文件。相反,我想将哈希写入单独的文件中,并在我的规范中使用它 那么,最佳实践是什么?

4

1 回答 1

5

最好的做法是不要存根整个散列。当然,您的测试不需要每一行。您最好在每个测试/上下文中删除每个测试所需的几行。

如果您必须存根整个 api,您可以在以下位置创建一个单独的模块spec/support

# spec/support/api_stub.rb

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

由于该文件夹中的任何内容都会自动包含在内,因此您可以ApiStub.response在存根定义中使用。

于 2012-08-03T07:10:40.920 回答