2012-01-28 27 views
7

Tôi đang viết trình bao bọc API làm đá quý và tôi muốn kiểm tra phản hồi API bằng RSpec.Kiểm tra API web bằng RSpec và VCR

Vấn đề với điều này là tất cả các yêu cầu API được thực hiện bằng GET và chứa khóa API trong url:

ví dụ: game/metadata/{api_key}

Điều này trình bày vấn đề khi thử nghiệm vì tôi không muốn giữ khóa API trong lịch sử kho lưu trữ git. Có cách nào tôi có thể làm các xét nghiệm spec, tốt hơn với RSpec/VCR, và không lưu trữ các khóa API trong kiểm soát phiên bản?

Tôi đã thử sử dụng biến môi trường, nhưng VCR vẫn lưu trữ toàn bộ yêu cầu, không chỉ là nội dung phản hồi.

Trả lời

20

VCR có một tùy chọn cấu hình đặc biệt cho các trường hợp như thế này:

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

Xem https://www.relishapp.com/myronmarston/vcr/docs/configuration/filter-sensitive-data cho một ví dụ lớn hơn.

+0

Điều này có vẻ tốt, tôi sẽ kiểm tra ngay bây giờ. –

+0

Hoạt động tuyệt vời. Cảm ơn bạn. –

Các vấn đề liên quan