This library provide a fake XMLHttpRequest object for testing browser-based libraries. It is partially extracted (and in many places simplified) from Sinon.JS and attempts to match the behavior of XMLHttpRequest specification.
Sinon includes much more than just a fake XHR object which is useful in situations where you may not need mocks, spies, stubs, or fake servers.
In addition to matching the native XMLHttpRequest's function, FakeXMLHttpRequest adds a respond function
that takes three arguments: a HTTP response status number, a headers object, and a text response body:
// simulate successful response
xhr = new FakeXMLHttpRequest();
xhr.respond(200, {"Content-Type": "application/json"}, '{"key":"value"}');
xhr.status; // 200
xhr.statusText; // "OK"
xhr.responseText; // '{"key":"value"}'
// simulate failed response
xhr = new FakeXMLHttpRequest();
xhr.abort();
There is no mechanism for swapping the native XMLHttpRequest or for recording, finding, or playing back requests. Libraries using FakeXMLHttpRequest should provide this behavior.
Tests are written in QUnit and run through the Karma test runner.
Run with:
karma start
