Webmock's hash_including doesn't parse query values to string

Posted Almost 7 years ago. Visible to the public.

Webmocks hash_including is similar to RSpec::Mocks::ArgumentMatchers#hash_including. Be aware that hash_including (webmock v3.0.1) doesn't parse integer values to String.

Without hash including you would say:

uri = URI('http://example.com/?foo=1&bar=2')
stub_request(:get, 'example.com').with(query: {foo: 1, bar: 2})
Net::HTTP.get(uri) # ===> Success

If you only want to check if foo is present you can use hash_including:

uri = URI('http://example.com/?foo=1&bar=2')
stub_request(:get, 'example.com').with(query: hash_including(foo: 1))
Net::HTTP.get(uri) # ===> Error

hash_including doesn't parse query values to string, you need to take care of this:

uri = URI('http://example.com/?foo=1&bar=2')
stub_request(:get, 'example.com').with(query: hash_including(foo: '1'))
Net::HTTP.get(uri) # ===> Success
Last edit
Almost 7 years ago
Henning Koch
License
Source code in this card is licensed under the MIT License.
Posted by Emanuel to makandra dev (2017-06-07 13:30)