Mock Redis server for Node unit tests.
Requires Node version 8.1.0 or higher for the newest language features.
This project was created to help unit test applications using Redis. Stubbing out the redis client to perform unit tests is problematic, because it requires tying tests to the api of a dependency, not the application code. Version upgrades, or other dependency changes. Instead, RedMock can be used to do full integration testing, without needing to start a real redis server.
This project has been forked to update dependencies and try to bring the code base into a more modern state, thanks to advances in node.js since v5. The code is being cleaned up, and examples/tests are being updated.
npm
$ npm install -D @skewedaspect/redmock
yarn
$ yarn add -D @skewedaspect/redmock
Call the start method after creating a new instance of the RedisServer class. This method returns an ES6 promise.
const RedisServer = require('@skewedaspect/redmock');
const redisServer = new RedisServer();
redisServer
.start()
.then((res) =>
{
// Server is now up
})
.catch((err) =>
{
// Deal with error
});
Call the stop method. This method returns a promise. (This message does not error.)
redisServer
.stop()
.then((res) =>
{
// Server is now stopped
});
// require needed modules
describe('SomeTestSpec', () =>
{
let redisServer, underTest;
// Start the server
before(() =>
{
redisServer = new RedisServer();
return redisServer.start();
});
// Stop the server
after(() =>
{
return redisServer.stop();
});
describe('#somemethod()', () =>
{
let underTest;
beforeEach(() =>
{
underTest = new UnderTest();
});
it('should test it', () =>
{
return underTest.somemethod().should.eventually.equal(true);
});
});
});