Skip to content

Tag function for Parameterized testing with Markdown table.

License

Notifications You must be signed in to change notification settings

azu/parameterized-table-template

Repository files navigation

parameterized-table-template Actions Status: test

This library provide Tag functions for Parameterized testing with Markdown-like table.

This is inspired by jest-each.

Install

Install with npm:

npm install parameterized-table-template

Usage

import * as assert from "assert";
import { parameterizedTableTag } from "parameterized-table-template";

describe("example", () => {
    describe("sum tests", () => {
        // function for testing
        const sum = (x, y) => x + y;
        // generate tests
        parameterizedTableTag`
            first | second | expected
            ${1}  | ${2}   | ${3}
            ${2}  | ${1}   | ${3}
            ${2}  | ${2}   | ${4}
        `.forEach(({ first, second, expected }) => {
            it(`${first} + ${second} = ${expected}`, () => {
                assert.strictEqual(sum(first, second), expected);
            });
        });
    });
});

Notes: For TypeScript User

// parameterizedTableTag allow to pass generics type
parameterizedTableTag<{ first: number, second: number, expected: number }>`
    first | second | expected
    ${1}  | ${2}   | ${3}
    ${2}  | ${1}   | ${3}
    ${2}  | ${2}   | ${4}
`.forEach(({ first, second, expected }) => {
    it(`${first} + ${second} = ${expected}`, () => {
        assert.strictEqual(sum(first, second), expected);
    });
});

API

parameterizedTableTag: object[]

parameterizedTableTag is a Tag functions.

It return array of object that is defined in table.

parameterizedTableTag takes a tagged template string with:

  • First row of variable name column headings separated with |
  • One or more subsequent rows of data supplied as template literal expressions using ${value} syntax.
const table = parameterizedTableTag`
    first | second | expected
    ${1}  | ${2}   | ${3}
    ${2}  | ${1}   | ${3}
    ${2}  | ${2}   | ${4}
`;
/*
[
    {
        "expected": 3,
        "first": 1,
        "second": 2
    },
    {
        "expected": 3,
        "first": 2,
        "second": 1
    },
    {
        "expected": 4,
        "first": 2,
        "second": 2
    }
]
*/

Changelog

See Releases page.

Running tests

Install devDependencies and Run npm test:

npm test

Contributing

Pull requests and stars are always welcome.

For bugs and feature requests, please create an issue.

  1. Fork it!
  2. Create your feature branch: git checkout -b my-new-feature
  3. Commit your changes: git commit -am 'Add some feature'
  4. Push to the branch: git push origin my-new-feature
  5. Submit a pull request :D

Author

License

MIT © azu

Acknowledge

It is based on jest-each.

About

Tag function for Parameterized testing with Markdown table.

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Sponsor this project

 

Packages

No packages published
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy