Mocks node.js `http.IncomingMessage` (a request). See also `mock-res`.
npm install mock-reqmock-req
========
Mocks node.js http.IncomingMessage (a request). See also mock-res.
Being a readable/writable stream, you can pipe the request body to and from it.
test.js for further usage.var MockReq = require('mock-req');
// Basic usage
var req = new MockReq();
// With options
var req = new MockReq({
method: 'PUT',
url: '/stuff?q=thing',
headers: {
'Accept': 'text/plain'
},
// arbitrary properties:
search: 'thing'
});
// Write body
req.write('hello');
req.write('world');
// Or stringify to JSON
req.write({
val: 5
});
// Or even buffers
req.write(new Buffer('buf'));
// End body
req.end();
// NOTE req.end() is automatically called if
// method is set to GET/HEAD/DELETE.
var assert = require('assert');
var ping = require('./ping-handler');
var MockReq = require('mock-req');
function test(done) {
/ Arrange /
var req = new MockReq({
method: 'GET',
url: '/stuff',
headers: {
'Accept': 'text/plain'
}
});
// NOTE: req.end() is automatically called for GET/HEAD/DELETE methods
// Use mock-res for a better mock
var res = {
end: end
};
/ Act /
ping(req, res);
/ Assert /
function end(data) {
assert.equal(data, 'okay');
done(); // this is an async test
}
}
* method: The request's method, defaults to 'GET'
* url: The request's URL, defaults to ''
* headers: A case insensitive name/value object
All other values will be copied to the request.
* All readable/writable stream methods.
* req._fail(error) Causes the request to emit an error when written to.