2012-03-28 4 views
1

내 레일 앱은 몇 가지 다른 API와 대화하며 요청에 문제가있는 경우 오류가 제대로 처리되도록 테스트를 작성하고 싶습니다. 예를 들어, 서비스가 중단되어 도달 할 수없는 경우.API 오류를 테스트하는 방법은 무엇입니까?

테스트 중에 괜찮 았을지라도 서비스에서 돌아 오는 오류를 시뮬레이트 할 수있는 방법이 있습니까?

답변

1

webmock 보석이 도움이됩니다. 특정 질문에 대해서는 "사용자 정의 상태 메시지로 응답"으로 스크롤하십시오.

stub_request(:any, "www.example.com").to_return(:status => [500, "Internal Server Error"]) 

req = Net::HTTP::Get.new("/") 
Net::HTTP.start("www.example.com") { |http| http.request(req) }.message # ===> "Internal Server Error" 

저는이 보석을 Rspec 및 Test :: Unit과 함께 사용했습니다. 가장 큰 단점은 특정 모의에 어떤 요청이 적용되는지를 결정하는 매칭 논리가 예상대로 작동하지 않는다는 것입니다. 그래도 사소한 불만입니다. 이 젬은 넷 긍정적이며 테스트 케이스에서 실제 서비스를 시도하는 것보다 훨씬 낫습니다.

0

실제 서비스 대신 모의를 사용하여 오류를 돌려 줄 수 있습니다.

관련 문제