2012-06-24 13 views
6

Próbuję napisać specyfikację rspec, aby przetestować, czy moja logika jest w stanie obsłużyć konkretną sieć :: HTTPResponse, która ma kod stanu 401. Jak ja ' m używając HTTParty, .get zwróci mi HTTPartyResponse, a ja odzyskaję Net :: HTTPResponse z httparty_repsonse_object.response.Zgłosić żądanie http, aby zwrócić HTTPartyResponse z Net :: HTTPResponse

net_response_object = Net::HTTPResponse.new(1.1, 401, 'Forbidden') 
#not sure what to do here? write a test double to return a net_response_object? 
stub_request(:any, /hello.com/).to_return(a_http_party_response_object) 

Odpowiedz

4

zorientowali się, jest to poprawny sposób

it 'will test this' do 
    stub_request(:any, /hello.com/).to_return(:status => [401, "Forbidden"]) 
    ... 
end 

HTTParty ma analizować szydzili odpowiedzi HTTP i wrócić do mnie HTTPartyResponse.

4

Można użyć Webmock, która obsługuje przedrzeźnianie żądań HTTParty.