Skip to content

Latest commit

 

History

History
51 lines (42 loc) · 1.26 KB

README.md

File metadata and controls

51 lines (42 loc) · 1.26 KB

Cargotest

An experimental, yet functional, chai testing framework to encourage a more NUnit-ish approach to testing in typescript.

Install

$ npm install -D cargotest

Global runner

$ npm install -g cargotest

Setup

experimentalDecorators and emitDecoratorMetadata needs to be set to true.

Usage

Runner

The runner is used either by invoking the cli application ($ cargo) and the runner will run all tests in ./tests folder (if --path is not provided to cargo cli application).

Test script setup

Package.json

"scripts": {
    "test": "./node_modules/.bin/cargo"
}

Code usage

Cargotest currently supports Test and TestCase decorators, as shown below. The decorators is only used to evaluate the corresponding function and that's it. For assertions, use chai.

import { assert } from "chai";
class TestClass {
    @Test
    public When_something_Then_something() {
        let foo = new Foo();

        assert.equal(foo.Bar(), "Bar");
    }

    @Testcase("Darth", "Vader")
    @Testcase("Obi wan", "Kenobi")
    public When_something_Then_something_else(firstName: string, lastName: string) {
        let bar = new Bar();

        assert.equal(bar.GetLastName(firstName), lastName);
    }
}

License

MIT