@popovmp/mocha-tiny

    1.3.1 • Public • Published

    Mocha-tiny - straightforward unit testing: describe and it

    mocha-tiny is a very simple, zero dependencies helper for unit tests.

    Homepage: https://github.com/popovmp/mocha-tiny

    Synopsis

    const { strictEqual  } = require('assert');
    const { describe, it } = require('@popovmp/mocha-tiny');
     
    function sum(m, n) {
        return m + n;
    }
     
    describe('Test math', () => {
        describe('sum(m, n)', () => {
            it('is a function', () => {
               strictEqual(typeof sum, 'function');
            });
     
            it('accepts two args', () => {
                strictEqual(sum.length, 2);
            });
     
            it('sums numbers', () => {
                const actual   = sum(2, 3);
                const expected = 5;
                strictEqual(actual, expected);
            });
        });
    });

    Output - all passed:

    mocha-tiny all passed

    Output - a failed test:

    mocha-tiny failed test

    Installation

    npm install @popovmp/mocha-tiny
    

    Usage

    mocha-tiny runs a test functions, collects stats, and prints a summary.

    Usually you have one or two levels of nested describe function, which contains a number of it functions. The actual tests are in the second argument of it.

    describe('system under test', () => {
        describe('method under test', () => {
            it('behavior', () => {
                const actual   = getFoo();
                const expected = 'foo';
                assert.strictEqual(actual, expected);
            });
        });
    });

    The helper runs the describe and the it functions sequentially. It means, you can initialize your tests at the begging of a describe block and to clean up at the end.

    describe('Test group', () => {
        // Init the test environment.
        const systemUnderTest = {
            theAnswer: 42,
        };
     
        it('test...', () => {
           strictEqual(systemUnderTest.theAnswer, 42);
        });
     
        // Clean
        systemUnderTest.theAnswer = 0;
    });

    mocha-tiny throws an error if there are failed tests.

    Run all tests

    mocha-tiny exports a mocha-tiny command. It finds and runs all tests in the ./test folder.

    The accepted test files format is test-name.test.js.

    You can set this command in your package.js:

    {
      "scripts": {
        "test": "mocha-tiny"
      }
    }

    Methods

    mocha-tiny exports two methods:

    /**
     * Runs a group of tests
     *
     * @param { string   } message - description of the test group
     * @param { function } content - contains a `describe` or `it` functions
     */
    function describe(message, content) { }
    /**
     * Runs an assertion function
     *
     * @param { string   } message   - test description
     * @param { function } assertion - contains an assertion
     */
    function it(message, assertion) { }

    License

    mocha-tiny is free for use and modification. No responsibilities for damages of any kind.

    Copyright (c) 2020 Miroslav Popov

    Install

    npm i @popovmp/mocha-tiny

    DownloadsWeekly Downloads

    6

    Version

    1.3.1

    License

    MIT

    Unpacked Size

    12.4 kB

    Total Files

    9

    Last publish

    Collaborators

    • popovmp