@acce/tester

simple test runner with support for async stuff

Usage no npm install needed!

<script type="module">
  import acceTester from 'https://cdn.skypack.dev/@acce/tester';
</script>

README

@acce/tester

This is a crazy simple test framework for node applications.

Usage

To use, import the 'file' method into your test.

import { file } from '@acce/tester';
// or
const { file } = require('@acce/tester');

API

  • file: <function> properties (name, method)

    • name: <string> the name of the unit you are testing.
    • method: <Function> a scope for your file.
      The method property should be an function that takes one argument, unit
  • unit: <function> properties (name, method)

    • name: <string> the name of the unit you are testing.
    • method: <Function> a scope for your unit.
      The method property should be an function that takes one argument, test
  • test: <function> properties (name, method)

    • name: <string> the name of the test you are running
    • method: <Function> a scope for your test.
      The method does not require any arguments.

If you need a simple assertion library, I recommend using node.js assert package

Example test

  1. Create a file called <unit>.test.js somewhere in your project.
    Where <unit> is the name of the unit you are testing

  2. Add an npm script command to your package.json that will execute your new test.
    ESModules require the 'experimental modules' flag, and a package.json type property

    {
        ...
        "type": "module",
        ...
        "scripts": {
            ...
            "test:unit": "node --experimental-modules path/to/unit.test.js",
            ...
        },
        ...
    }
    
  3. You can now execute your test with npm run test.

    Example Unit Test

    import { file } from '@acce/tester';
    
    file('Maths functionality', async (unit) => {
        unit('Test that math still works', async (test) => {
            test('1 + 1 does not equal 3', async () => {
                if (1 + 1 == 3) throw 'looks like maths is falling appart';
            });
    
            test('1 + 1 does not equal 11', async () => {
                if (1 + 1 == '11') throw 'looks like maths is working with strings now';
            });
    
            test('1 + 1 is actually 2', async () => {
                if (1 + 1 !== 2) throw 'well dang. Computer machine dun\' broke';
            })
        })
    })
    

    Example Output

    exampe of a successful unit test