【问题标题】:Parsing Request Headers in Test::Unit在 Test::Unit 中解析请求标头
【发布时间】:2013-05-08 17:02:57
【问题描述】:

我正在尝试在 Test::Unit 中解析 HTTP 请求标头,但无济于事。我正在为这样的控制器编写功能测试:

test "create a shopify order" do
  get :order, PARAMS, {HEADER1 => VAL, HEADER2 => VAL}
  assert_response :success # Make sure this returns 200, first off
  ...
end

通常,我会阅读类似 request.headers[HEADER1] 的标题,但这会在 Test::Unit 中返回 nilrequest 未定义。

我如何实际获取我在上述请求中设置的标头的值?我如何将它们分配给request?我的应用程序从 web 服务中提取,我需要测试在标头中传递的值,所以我不想更改我的应用程序代码。我只需要在 Test::Unit 中模拟这些请求是什么样的。

谢谢!

【问题讨论】:

  • 使用“test”和“assert_response”通常是对Test::Unit测试的描述。你确定你在使用 rspec 吗?
  • 完全不确定!我正在使用默认的 RoR 测试套件......我想因为这是一个功能测试,而不是一个单元测试,我假设我没有使用 Test::Unit。我肯定是错的。长期的 RoR 开发,全面测试新手。
  • 您将使用哪些特定的标头属性?
  • @ideaoforder 帮助您进行谷歌搜索和堆栈溢出:您正在使用 test::unit
  • 为什么需要在该规范中获取请求中标头的值?您手动设置它们。无需测试底层 Rails 核心行为。这些值是您在get 消息中设置的值。您是指来自get 请求的response 的标头吗?

标签: ruby-on-rails ruby-on-rails-3 http-headers testunit


【解决方案1】:

了解您正在使用的测试肯定会有所帮助(感谢 Jesse)。我发现我一直在查看集成测试的文档,而不是功能测试,并且设置标头在功能测试中的工作方式不同:

http://twobitlabs.com/2010/09/setting-request-headers-in-rails-functional-tests/

所以我没有设置我认为的标题。他们读得很好——只是没有设置。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-11-11
    • 2022-01-05
    • 1970-01-01
    • 2010-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多