所以我有一个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 :显然我在问这个问题的时候并没有想到。使用请求发送标头并不意味着我会在响应中收到它们。
现在的问题是:如何测试请求标头而不将其与响应一起发回?
答案 0 :(得分:4)
您应该能够像这样检查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