有关如何使用Cucumber检查所需的401 REST响应的问题。
注意事项: - 这不是Rails应用程序。 - 黄瓜版本是1.3.17 - 我正在使用rest_client 1.7.3:https://github.com/rest-client/rest-client - 我有步骤:
When a GET request is made with no token
Then status code should be '401'
定义:
When /^a GET request is made with no token$/ do
@response = RestClient.get "http://<hidden>"
end
Then /^status code should be '(\d+)'$/ do |code|
expect(@response.code).to eq(code.to_i)
end
&#34;然后&#34;适用于&#39; 200&#39;响应,但我已停止测试401,因为运行错误在&#34;当&#34;有,你猜对了,401错误。
我已经在整个互联网上搜索了一些建议。我在我的场景之前尝试了@ allow-rescue标签(这似乎是一个RAILS的东西 - 但无论如何我都试过了。)我还没有找到办法进行401测试。
任何人都有任何想法(除了在测试报告中查看失败并说“是的,那些应该失败&#39;?)
谢谢, 编
答案 0 :(得分:1)
查看RestClient的文档:http://www.rubydoc.info/gems/rest-client/1.6.7/frames
您可以在try / catch块中运行它:
begin
RestClient.get 'http://example.com/resource'
rescue => e
e.response
end
您可以将参数传递给RestClient,使其返回异常。
RestClient.get('http://example.com/resource'){|response, request, result| response }