如何用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