Giter Club home page Giter Club logo

redmock's Introduction

RedMock

Build Status

Mock Redis server for Node unit tests.

Requires Node version 8.1.0 or higher for the newest language features.

Purpose

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.

Fork

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.

Usage

npm

$ npm install -D @skewedaspect/redmock

yarn

$ yarn add -D @skewedaspect/redmock

Starting the server

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
    });

Stopping the server

Call the stop method. This method returns a promise. (This message does not error.)

redisServer
    .stop()
    .then((res) =>
    {
        // Server is now stopped
    });

Example test

// 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);
        });
    });
});

redmock's People

Contributors

morgul avatar smokerbag avatar hoeck-lv avatar weddin avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.