Mock http requests made using fetch.
- mocks most of the fetch API spec, even advanced behaviours such as streaming and aborting
- declarative matching for most aspects of a http request, including url, headers, body and query parameters
- shorthands for the most commonly used features, such as matching a http method or matching one fetch only
- support for delaying responses, or using your own async functions to define custom race conditions
- can be used as a spy to observe real network requests
- can be extended with your own reusable custom matchers that can be used both for matching fetch-calls and inspecting the results
- isomorphic, and supports either a global fetch instance or a locally required instance
New If using jest, try the new fetch-mock-jest wrapper.
const res = await fetch('http://example.com');
Table of Contents
I devote a lot of time to maintaining fetch-mock for free. I don't ask for payment, but am raising money for a refugee charity - please consider donating
fetch-mock requires the following to run:
Node.js 8+ for full feature operation
Node.js 0.12+ with limitations
npm (normally comes with Node.js)
- Either of the following
node-fetch when testing in a nodejs
- A browser that supports the
fetch API when testing in a browser
Documentation and Usage
See the project website or cheatsheet
If you're using jest as your test runner, consider using fetch-mock-jest, a lightweight, jest-friendly wrapper around fetch-mock.
fetch-mock is licensed under the MIT license.
Copyright © 2019, Rhys Evans