Lendo o body binário de um cassete VCR
Lendo o body binário de um cassete VCR
Trabalhar com VCR é ótimo até você gravar uma response que veio com Content-Encoding: gzip e abrir o YAML pra ver bytes incompreensíveis. O snippet abaixo carrega o cassete e imprime o body como string.
1
2
3
4
5
6
7
require 'yaml'
path = 'spec/vcr_cassettes/cassette.yml'
deserialized = YAML.load_file(path)
body_string = deserialized['http_interactions'][0]['response']['body']['string']
puts body_string
Se o body estiver gzipado, complemente com:
1
2
3
4
5
require 'zlib'
require 'stringio'
decoded = Zlib::GzipReader.new(StringIO.new(body_string)).read
puts decoded
Referência que eu usei: gist do lapointexavier.
Por que é útil
Cassetes ilegíveis mascaram bugs. Quando o teste falha com “expected X, got nothing”, abrir o cassete e enxergar o JSON real costuma economizar 20 minutos de chute.
Esta postagem está licenciada sob
CC BY 4.0
pelo autor.