【问题标题】:Access request and response headers in rspec访问 rspec 中的请求和响应标头
【发布时间】:2014-08-10 18:46:47
【问题描述】:

我正在测试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

【问题讨论】:

  • Requestresponse。但是我猜这对你没有帮助,因为这不是一个请求。您可能测试的是模型,而不是控制器。
  • @zishe:如果您注意到响应链接...他正在访问 PlayersController 而不是 PlayersModel 方法。
  • @zishe:你没有???
  • 我在这段代码中没有看到请求。你应该展示你的模型,也许它有。
  • @zishe:这是我的模型。 pastie.org/private/0o18pnqmto2drzymxwktw

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


【解决方案1】:

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

如果 ActiveRestClient 有自己的测试套件 - 那么您可以期望它可以正常工作(例如,当您成功返回某些内容时,您会收到 200 响应)。 不需要在你的模型代码中测试它。您的模型代码应该只测试您提供的功能。例如,测试您的模型是否具有基于 ActiveRestClient 的“查找”方法...并假设(在此级别)它可以正常工作。

如果您想测试端到端功能...请将其放入您的功能规范中。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-11-13
    • 1970-01-01
    • 2016-02-13
    • 1970-01-01
    • 1970-01-01
    • 2016-05-06
    • 2022-10-24
    • 1970-01-01
    相关资源
    最近更新 更多