我已经尝试了一段时间从xml响应中构建哈希,但我一直收到此错误
Failure/Error: expect(Hash.from_xml(resp_body)).to eq({ SyntaxError: ~/.rvm/rubies/ruby-2.1.2/lib/ruby/2.1.0/rexml/functions.rb:393:
语法错误,意外的keyword_end,期望输入结束
response.body
是
"<?xml version=\"1.0\" encoding=\"UTF-8\"?><response>
<txn_id>123</txn_id> <result>0</result> <comment>OK</comment>
<filial>1</filial> <prv_txn type=\"integer\">1</prv_txn></response>"
rspec本身:
require 'rails_helper'
require 'active_support/core_ext/hash/conversions'
describe TestController do
it 'should invoke pay_action' do
do_pay_request
resp_body = response.body.gsub /\n/, ''
expect(Hash.from_xml(resp_body)).to eq({
response: {
txn_id: '123456789101',
prv_txn: '111',
result: '0',
comment: 'OK',
filial: '1'
}.stringify_keys
}.stringify_keys)
end
end
我正在使用rvm和ruby ruby 2.1.2p95 (2014-05-08 revision 45877) [x86_64-darwin13.0]
答案 0 :(得分:0)
我通过将gem 'rubysl-rexml', '~> 2.0.2'
添加到我的gemfile