我正在使用VCR记录我正在整合的其他系统的响应。
但是,这个响应获得了一个巨大的JSON,VCR正在以二进制格式保存它:
body:
encoding: ASCII-8BIT
string: !binary |-
eyJsaXN0IjpbXSwiZmFjZXRzIjpbeyJuYW1lIjoiU2FsZXNDaGFubmVsTmFt
ZSIsInR5cGUiOi...
有没有办法只能将响应主体保存为JSON?
我想这样做来编辑返回的JSON,以便为我的测试制作其他场景,
由于
答案 0 :(得分:23)
来自Cleyton提供的google forum link(如果我有代表,我会发表评论),spec_helper.rb
中的以下更改对我有用:
VCR.configure do |c|
c.before_record do |i|
i.response.body.force_encoding('UTF-8')
end
end
答案 1 :(得分:3)
在录像机google forum中,我被告知要自己做一个序列化器,以便获得一个漂亮的json回归。
所以,我发现了code。通过一些小的修改,它解决了我的问题,格式化响应体不被编码为二进制。
答案 2 :(得分:0)
在配置中使用decode_compressed_response
。
VCR.configure do |c|
c.cassette_library_dir = 'cassettes'
c.hook_into :webmock
c.default_cassette_options = { :decode_compressed_response => true }
end