我正在编写一个api包装器作为gem,我想使用rspec测试api响应。
问题在于,所有的api请求都是使用get发出的,并且在url中包含一个api密钥:
例如game/metadata/{api_key}
这给测试带来了问题,因为我不想在git存储库历史记录中保留api密钥。有没有什么方法可以做这些规范测试,最好是使用rspec/vcr,而不是在版本控制中存储api密钥?
我试过使用环境变量,但VCR仍然存储整个请求,而不仅仅是响应体。
最佳答案
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。