在rspec中访问请求和响应头

时间:2014-08-10 18:46:48

标签: ruby-on-rails ruby rspec active-rest-client

我正在测试my model methods,无论如何我可以访问requestresponse标题。

require 'spec_helper'

describe Project do

  it "can find an Project that this user belongs to" do 
    project = Project.find( id: '22', authorization: @auth ) // Rest API Call        
    expect(response.code).to eq(200);
  end

end

当我尝试访问response.code时,我收到undefined method/variable响应。如何访问我的响应标题。

更新我的项目模型:

class Project < ActiveRestClient::Base  
  base_url "https://domainname.com"

  get :find, '/project/:id/'
end

1 个答案:

答案 0 :(得分:1)

您正在尝试测试一些您无法使用的内容 - 即ActiveRestClient接口的基础代码。它不是您模型中的代码,因此您不应该在模型规范中对其进行测试。您正在测试深度嵌入的内容,而不是您的代码实际应该执行的操作。这有点像测试你可以驾驶汽车 - 通过检查活塞在发动机中上下移动......而不是向窗外看,确保你不会撞到东西。

如果ActiveRestClient有自己的测试套件 - 那么你可以期待它正常工作(例如,当你成功返回某些内容时你得到200响应)。 不需要在您的型号代码中对其进行测试。您的模型代码应仅测试您提供的功能。例如,测试您的模型是否具有基于ActiveRestClient的&#34;查找&#34;它的方法......并假设(在这个级别)它只是起作用。

如果您想测试端到端功能,请将其添加到您的功能规格中。