9

我正在编写一个 API 包装器作为 gem,我想使用 RSpec 测试 API 响应。

这样做的问题是所有 API 请求都是使用 GET 发出的,并且在 url 中包含一个 API 密钥:

例如game/metadata/{api_key}

这给测试带来了问题,因为我不想将 API 密钥保留在 git 存储库历史记录中。有什么方法可以进行这些规范测试,最好使用 RSpec/VCR,而不是将 API 密钥存储在版本控制中?

我试过使用环境变量,但 VCR 仍然存储整个请求,而不仅仅是响应正文。

4

1 回答 1

21

VCR 具有专门针对以下情况的配置选项:

VCR.configure do |c|
  c.filter_sensitive_data("<API_KEY>") { MyAPIClient.api_key }
end

有关更大的示例,请参阅https://www.relishapp.com/myronmarston/vcr/docs/configuration/filter-sensitive-data

于 2012-01-28T04:02:09.493 回答