从xml构建哈希,在rspec测试中出错

时间:2014-09-11 11:33:27

标签: ruby xml ruby-on-rails-4 rspec

我已经尝试了一段时间从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]

1 个答案:

答案 0 :(得分:0)

我通过将gem 'rubysl-rexml', '~> 2.0.2'添加到我的gemfile

来解决了这个错误