如何在Sinatra中使用rspec和机架测试测试标题
所以我有一个Sinatra应用程序,它通过HTTP POST从另一个服务接收XML。我想在本地测试一下。我有一个发送到端点的测试XML文件。进展顺利。我还设置了一些标题,如下所示:如何在Sinatra中使用rspec和机架测试测试标题,rspec,sinatra,rack,Rspec,Sinatra,Rack,所以我有一个Sinatra应用程序,它通过HTTP POST从另一个服务接收XML。我想在本地测试一下。我有一个发送到端点的测试XML文件。进展顺利。我还设置了一些标题,如下所示: post '/', xml, 'HTTP_X_MY_AWESOME_HEADER' => "It's value" 其中xml是发送到我的端点的普通xml的精确副本。但我作为参数传递的标题永远不会显示在输出中 我做错什么了吗? 这里有很多关于它的帖子,但都是过时的 我使用的是RSPEC2.8、Sinatra
post '/', xml, 'HTTP_X_MY_AWESOME_HEADER' => "It's value"
其中xml
是发送到我的端点的普通xml的精确副本。但我作为参数传递的标题永远不会显示在输出中
我做错什么了吗?
这里有很多关于它的帖子,但都是过时的
我使用的是RSPEC2.8、Sinatra 1.3.2、Ruby 1.9.3-p0、Rack::Test 0.6.1
更新2012-01-28 11:37:显然我问这个问题时没有思考。发送带有请求的标题并不意味着我将在响应中收到它们
所以现在的问题是:如何在不将请求头与响应一起发送回去的情况下测试请求头?您应该能够像这样检查最后一个请求:
last_request.env["HTTP_X_MY_AWESOME_HEADER"]
使用RSpec&上面的示例,您可以使用以下各项进行测试:
last_request.env["HTTP_X_MY_AWESOME_HEADER"].should == "It's value"
希望你能得到绿灯:)
更多信息请点击此处:
HTH发送带有请求的头并不意味着我可以得到这些头的响应。因此,
last\u response
不必包含HTTP\u X\u MY\u AWESOME\u头
-头