Mock Express Response

0.3.0 · abandoned · verified Wed Apr 22

Node.js library designed to facilitate unit and integration testing of Express.js middleware and route handlers by providing a mock HTTP response object. It emulates the standard Express `response` API, including methods like `json()`, `send()`, and `render()`, allowing developers to inspect the output and behavior of their Express-dependent code without launching a full HTTP server. The package, currently at version 0.3.0, appears to be unmaintained; its last update was in 2017 and the copyright dates to 2015. It is built upon `mock-res` for core HTTP response stream mocking and is intended to be used in conjunction with `mock-express-request` for a complete request/response mock pair. A key differentiator is its direct mirroring of the Express `res` object's internal state, allowing retrieval of rendered data via methods like `_getJSON()` and `_getString()`, which simplifies assertion writing in tests. Due to its age, compatibility with modern Express.js versions (v5+) and native ESM environments is not guaranteed.

Common errors

Warnings

Install

Imports

Quickstart

Demonstrates basic instantiation and usage of `MockExpressResponse` with common Express methods (`json`, `render`, `send`), and how to retrieve the mocked output for assertions.

const ejs = require('ejs');
const MockExpressRequest = require('mock-express-request');
const MockExpressResponse = require('mock-express-response');

// Basic usage
const response = new MockExpressResponse();

// With options, including a custom render engine and a mock request object
const request = new MockExpressRequest({
  url: '/users/123',
  method: 'GET'
});
const responseWithOptions = new MockExpressResponse({
    render: ejs.renderFile, // Use ejs as a template engine example
    request: request
});

// Express response methods
responseWithOptions.json({ user: { id: 1, active: true } });
responseWithOptions.render('user.ejs', { user: { id: 1, name: 'Test User' } });
responseWithOptions.send('<p>User details page</p>');

// To obtain the sent json response for testing
const jsonResult = responseWithOptions._getJSON();
console.log('JSON Result:', jsonResult);

// To obtain the text/html response for testing
const stringResult = responseWithOptions._getString();
console.log('HTML Result:', stringResult);

view raw JSON →