如何检查响应代码使用rest-client资源

时间:2014-06-08 18:07:28

标签: ruby rspec rest-client

我对Ruby很新。我试图针对以下类编写RSpec测试:

require 'rest-client'

class Query
  def initialize
    @@log = Logger.new(STDOUT)
    RestClient.log = @@log
    @@user = "joe@example.com"
    @@password = "joe123"
  end

  def get_details
    begin
      url = "http://api.example.com/sample/12345"
      resource = RestClient::Resource.new(url, :user => @@user, 
        :password => @@password, :content_type => :json, :accept => :json)
      details = resource.get
    rescue => e
      throw e # TODO: something more intelligent
    end
  end
end

我发现与返回RestClient.get的{​​{1}}不同,Response会将响应正文作为Resource.get返回。我想让Response工作,因为我想扩展它以进行不同的子资源调用。

有没有办法可以找到GET呼叫响应的HTTP状态代码?这将允许我写一个像以下的测试:

String

1 个答案:

答案 0 :(得分:1)

获取返回继承自String类的RestClient :: Response类的实例。

您仍然可以通过调用方法代码details.code来检查返回代码。其他方法例如是details.headersdetails.cookies