使用Cucumber测试401 REST响应

时间:2014-12-15 20:37:22

标签: ruby cucumber rest-client

有关如何使用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;?)

谢谢, 编

1 个答案:

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