Home

Awesome

License Build Status Issues Pull Requests

Testdeck

Testdeck is a suite of decorators to integrate your favorite test framework into an object-oriented workflow:

Object-Oriented API Usage

With Testdeck, writing object-oriented test suites is just a blaze.

import { suite, test } from "@testdeck/mocha";
import { expect } from 'chai';

class TestBase {
  @test
  basic() {
    // expected fail :/
    expect(true).to.equal(false);
  }
}

@suite
class Hello extends TestBase {
  @test
  world() {
    // expected fail :/
    expect(false).to.equal(true);
  }
}

Standard Functional API Usage

With Testdeck, you can always use the standard functional test framework API:

import { expect } from 'chai';

function basic() {
  it('basic', () => {
    // expected fail :/
    expect(true).to.equal(false);
  });
}

describe('Hello', () => {
  basic();
  it('world', () => {
    // expected fail :/
    expect(false).to.equal(true);
  });
})

And you can migrate your functional test suites to object-oriented over time.

Further Reading

License

Copyright 2016-2022 Testdeck Team and Contributors

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

     http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.

Packages

Testdeck is the monorepo for the following packages: