如何在Sinatra中使用rspec和rack-test测试头文件

时间:2012-01-26 20:49:14

标签: rspec sinatra rack

所以我有一个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 :显然我在问这个问题的时候并没有想到。使用请求发送标头并不意味着我会在响应中收到它们。

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

1 个答案:

答案 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