【问题标题】:How to test headers with rspec and rack-test in Sinatra如何在 Sinatra 中使用 rspec 和 rack-test 测试标头
【发布时间】:2012-02-19 23:02:05
【问题描述】:

所以我有一个 Sinatra 应用程序,它通过 HTTP POST 从另一个服务接收 XML。我想在本地测试它。我有一个发送到端点的测试 XML 文件。这很顺利。我还设置了一些这样的标题:

post '/', xml, 'HTTP_X_MY_AWESOME_HEADER' => "It's value"

xml 是发送到我的端点的普通 XML 的精确副本。但是我作为参数传递的标题永远不会显示在输出中。

我在这里做错了吗? 这里有很多关于它的帖子,但都已经过时了。

我正在使用 Rspec 2.8、Sinatra 1.3.2、Ruby 1.9.3-p0、Rack::Test 0.6.1。

UPDATE 2012-01-28 11:37:很明显,当我问这个问题时,我并没有思考。发送带有请求的标头并不意味着我会在响应中收到它们。

所以现在的问题是:如何测试请求标头而不将它们与响应一起发回?

【问题讨论】:

    标签: rspec sinatra rack


    【解决方案1】:

    您应该能够像这样检查 last_request:

    last_request.env["HTTP_X_MY_AWESOME_HEADER"]
    

    使用 RSpec 和您上面的示例进行测试:

    last_request.env["HTTP_X_MY_AWESOME_HEADER"].should == "It's value"
    

    希望你能获得绿灯:)

    更多信息在这里: http://www.sinatrarb.com/testing.html#asserting_expectations_about_the_response

    HTH

    【讨论】:

    • 通过请求发送标头并不意味着我会返回这些标头作为响应。所以last_response 不必包含HTTP_X_MY_AWESOME_HEADER-header
    猜你喜欢
    • 2015-12-12
    • 1970-01-01
    • 2013-09-01
    • 2011-11-09
    • 1970-01-01
    • 2015-03-25
    • 1970-01-01
    • 1970-01-01
    • 2011-12-03
    相关资源
    最近更新 更多