Ruby on rails Webmock是否从API返回响应对象?
我调用一个API,然后获取它们的xml并对其进行解析,以返回一个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的典型功能
所以现在在我的测试中,我想用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”]