2014-12-15 1 views
1

오이와 함께 원하는 401 REST 응답을 확인하는 방법에 대한 질문.오이와 함께 401 REST 응답 테스트

참고 사항 : - 이것은 레일 앱이 아닙니다. - 오이 버전은 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 

은 "다음"을 위해 잘 작동을 '200'응답이지만, 401 오류 때문에 "When"에서 실행 오류가 발생 했으므로 401 테스트를 중단했습니다.

나는 interwebs 전체 제안을 검색했습니다. 나는 시나리오를하기 전에 @ allow-rescue 태그를 시도했다. (RAILS 것 같다.하지만 어쨌든 시도해 보았다.) 401 테스트를 할 방법을 찾지 못했다.

누구나 어떤 아이디어가 (시험 보고서에 실패보고 '아, 그래, 사람들은 실패로되어있다'말 이외?)

감사합니다, 에드

+0

예외를 잡아 내고 이것이 좋은지 확인하려고 했습니까? – Fabrice31

+0

스택 트레이스를 제공해 주시겠습니까? –

+0

Fabrice31 및 Bruce Li에 응답 해 주셔서 감사합니다. 카일은 대답을 드릴 수있었습니다 ... –

답변

1

위해 RESTClient에 대한 설명서를보고 :

begin 
    RestClient.get 'http://example.com/resource' 
rescue => e 
    e.response 
end 

는 CA : 당신은 try/catch 블록에서 실행할 수 중 http://www.rubydoc.info/gems/rest-client/1.6.7/frames

n RestClient에 매개 변수를 전달하면 예외가 리턴됩니다.

RestClient.get('http://example.com/resource'){|response, request, result| response } 
+0

Excellent Kyle !! 그게 완벽하게 작동하고 특별히 401을 테스트 할 수 있습니다! 감사!! –