Ruby on Rails gem에서 작업하고 있습니다. 내 제어하에 있지 않은 외부 API와 상호 작용 (및 테스트)해야하기 때문에 webmock을 시도하고 있습니다.WebMock이 쿼리로 스텁 요청에 응답하지 않습니다.
before do
uri = URI.join(client.class.base_uri, DataComApi::ApiURI.search_contact).to_s
stub_request(
:get,
uri
).with(
query: hash_including({
'pageSize' => 0,
'offset' => 0
})
).to_return(
body: FactoryGirl.build(
:data_com_search_contact_response,
totalHits: 0
).to_json
)
# DEBUG
require 'httparty'
HTTParty.get(
uri,
{
query: {
offset: 0,
pageSize: 0
}
}
)
end
을 그리고 여기 당신이 rspec
명령의 콘솔 출력을 볼 수 있습니다 :
3) DataComApi::Client#search_contact returns instance of SearchContact
Failure/Error: HTTParty.get(
WebMock::NetConnectNotAllowedError:
Real HTTP connections are disabled. Unregistered request: GET https://www.jigsaw.com/rest/searchContact.json?offset=0&pageSize=0
You can stub this request with the following snippet:
stub_request(:get, "https://www.jigsaw.com/rest/searchContact.json?offset=0&pageSize=0").
to_return(:status => 200, :body => "", :headers => {})
registered request stubs:
stub_request(:get, "https://www.jigsaw.com/rest/searchContact.json with query params hash_including({"offset"=>0, "pageSize"=>0})")
============================================================
# ./spec/models/client_spec.rb:65:in `block (3 levels) in <top (r
내가 제거하는 경우를
그래서, 여기에 내가 거기 스텁 때문에 before(:each)
에있는 조각이다 :query
키는 모두 HTTParty.get
및 stub_request
에 있지만 작동하지만 API를 테스트하려면 쿼리 키와 값이 필요합니다.
stub_request
, uri
을 /searchContact.json/
으로 바꾸어도 테스트했지만 동일한 문제가있었습니다. 버그처럼