如何用rspec和机架测试标题

所以我有一个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。

更新2012-01-28 11:37 :显然,当我问这个问题时我并没有想。 通过请求发送标题并不意味着我会在回复中收到它们。

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


你应该能够像这样检查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

链接地址: http://www.djcxy.com/p/57261.html

上一篇: How to test headers with rspec and rack

下一篇: use of `&` keyword in PHP