Ruby on rails Webmock是否从API返回响应对象?

Ruby on rails Webmock是否从API返回响应对象?,ruby-on-rails,webmock,Ruby On Rails,Webmock,我调用一个API,然后获取它们的xml并对其进行解析,以返回一个响应对象 调用第三方API的典型功能 所以现在在我的测试中,我想用webmock说“当你收到一个去example.com的请求时,给我一个Response.new对象,这样我就可以继续我的代码并处理它了” 我正在使用rspec。下面是到目前为止的代码 测试代码为: stub_request(:any, /.*blah.*/). with(:headers => {'Accept'=>'*/*', 'User-Agen

我调用一个API,然后获取它们的xml并对其进行解析,以返回一个
响应
对象

调用第三方API的典型功能

所以现在在我的测试中,我想用webmock说“当你收到一个去example.com的请求时,给我一个Response.new对象,这样我就可以继续我的代码并处理它了”

我正在使用rspec。下面是到目前为止的代码

测试代码为:

stub_request(:any, /.*blah.*/).
  with(:headers => {'Accept'=>'*/*', 'User-Agent'=>'Ruby'}).
  to_return(:status => 200, 
            :body => "#{BlahResponse.new("<?xml version=\"1.0\"?><data><type><![CDATA[success]]></type><subject><![CDATA[Info]]></subject><code>29</code><description><![CDATA[Success]]></description><meeting_id><![CDATA[awesome-455]]></meeting_id></data>")}",
            :headers => {})

错误总是导致response不是一个Nil方法,这意味着我不会传递任何它看起来像的东西。

当您发出请求时,您不会在API代码中创建响应对象吗?将请求存根到URL以返回对象是没有意义的,因为这实际上不可能发生。在您的代码中,您将承担以下任务:s、 正文和头并将它们分配给一个新的请求对象,不是吗?是的。我在那里尝试了XML,但它不像我的。普通代码那样解析。我是否要重新措辞问题,说我如何正确返回XML?嗯……然后你应该将代码发布到解析XML的地方。存根只会传递你放在那里的任何内容。所有内容都在这里我在回答中引用了.new(“和”)之间的引号…呃。问题是这个问题在某种程度上是PEBKAC。在
to_return
中,而不仅仅是
:status=>200
中,我应该把
:status=>[200,“OK”]