Sign in Sign up

Clone of github.com/chaijs/chai

Public mirror on neosource. Source code and history come from the original repository under its upstream license.

Original on GitHub
10 branches · 116 tags
README.md

ChaiJS
chai

#

Chai is a BDD / TDD assertion library for node and the browser that can be delightfully paired with any javascript testing framework.

downloads:? node:?
Join the Slack chat Join the Gitter chat OpenCollective Backers

For more information or to download plugins, view the documentation.

What is Chai?

#

Chai is an assertion library, similar to Node's built-in assert. It makes testing much easier by giving you lots of assertions you can run against your code.

Installation

#

Node.js

#

chai is available on npm. To install it, type:

$ npm install --save-dev chai

Browsers

#

You can also use it within the browser; install via npm and use the index.js file found within the download. For example:

<script type="module">
  import { assert } from './node_modules/chai/index.js';
  // ...
</script>

Usage

#

Import the library in your code, and then pick one of the styles you'd like to use - either assert, expect or should:

import { assert } from 'chai';  // Using Assert style
import { expect } from 'chai';  // Using Expect style
import { should } from 'chai';  // Using Should style

Register the chai testing style globally

#
import 'chai/register-assert.js';  // Using Assert style
import 'chai/register-expect.js';  // Using Expect style
import 'chai/register-should.js';  // Using Should style

Import assertion styles as local variables

#
import { assert } from 'chai';  // Using Assert style
import { expect } from 'chai';  // Using Expect style
import { should } from 'chai';  // Using Should style
should();  // Modifies `Object.prototype`

import { expect, use } from 'chai';  // Creates local variables `expect` and `use`; useful for plugin use

Usage with Mocha

#
mocha spec.js --require chai/register-assert.js  # Using Assert style
mocha spec.js --require chai/register-expect.js  # Using Expect style
mocha spec.js --require chai/register-should.js  # Using Should style

Read more about these styles in our docs.

Plugins

#

Chai offers a robust Plugin architecture for extending Chai's assertions and interfaces.

  • Need a plugin? View the official plugin list.
  • Want to build a plugin? Read the plugin api documentation.
  • Have a plugin and want it listed? Simply add the following keywords to your package.json:
    • chai-plugin
    • browser if your plugin works in the browser as well as Node.js
    • browser-only if your plugin does not work with Node.js

Related Projects

#

Contributing

#

Thank you very much for considering to contribute!

Please make sure you follow our Code Of Conduct and we also strongly recommend reading our Contributing Guide.

Here are a few issues other contributors frequently ran into when opening pull requests:

  • Please do not commit changes to the index.js build. We do it once per release.
  • Before pushing your commits, please make sure you rebase them.

Contributors

#

Please see the full Contributors Graph for our list of contributors.

Core Contributors

#

Feel free to reach out to any of the core contributors with your questions or concerns. We will do our best to respond in a timely manner.

Keith Cirkel James Garbutt Kristján Oddsson

Core Contributor Alumni

#

This project would not be what it is without the contributions from our prior core contributors, for whom we are forever grateful:

Jake Luer Veselin Todorov Lucas Fernandes da Costa Grant Snodgrass