Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/chaijs/chai
BDD / TDD assertion framework for node.js and the browser that can be paired with any testing framework.
https://github.com/chaijs/chai
assertions bdd chai javascript tdd
Last synced: 3 days ago
JSON representation
BDD / TDD assertion framework for node.js and the browser that can be paired with any testing framework.
- Host: GitHub
- URL: https://github.com/chaijs/chai
- Owner: chaijs
- License: mit
- Created: 2011-12-07T08:06:35.000Z (about 13 years ago)
- Default Branch: main
- Last Pushed: 2024-10-23T09:08:39.000Z (about 2 months ago)
- Last Synced: 2024-11-21T04:05:52.438Z (21 days ago)
- Topics: assertions, bdd, chai, javascript, tdd
- Language: JavaScript
- Homepage: https://chaijs.github.io
- Size: 4.86 MB
- Stars: 8,139
- Watchers: 134
- Forks: 698
- Open Issues: 103
-
Metadata Files:
- Readme: README.md
- Changelog: History.md
- Contributing: CONTRIBUTING.md
- Funding: .github/FUNDING.yml
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Codeowners: CODEOWNERS
Awesome Lists containing this project
- awesome - chaijs/chai - BDD / TDD assertion framework for node.js and the browser that can be paired with any testing framework. (JavaScript)
- awesome-react-testing - chai - BDD / TDD assertion framework for node.js and the browser that can be paired with any testing framework. (Unit Testing / Assertion)
- A-collection-of-awesome-browser-side-JavaScript-libraries-resources-and-shiny-things. - chai - BDD / TDD assertion framework for node.js and the browser that can be paired with any testing framework. (Testing Frameworks / Assertion)
- awesome-nodejs - chai - BDD / TDD assertion framework for node.js and the browser that can be paired with any testing framework. ![](https://img.shields.io/github/stars/chaijs/chai.svg?style=social&label=Star) (Repository / Testing)
- awesome-trevor - Chai - BDD / TDD assertion framework for node.js and the browser that can be paired with any testing framework (Programming / JavaScript)
- awesome-repositories - chaijs/chai - BDD / TDD assertion framework for node.js and the browser that can be paired with any testing framework. (JavaScript)
- awesome-javascript - chai - BDD / TDD assertion framework for node.js and the browser that can be paired with any testing framework. ` π 4 months ago` (Testing Frameworks [π](#readme))
- awesome-javascript-cn - chai
- awesome-web3-tools-and-dapps - Chai - An assertion library that works with JavaScript testing frameworks for BDD and TDD. (dApps directory / Blockchain Security Tools)
- awesome-javascript - chai - BDD / TDD assertion framework for node.js and the browser that can be paired with any testing framework. - β 5837 (Testing Frameworks)
- awesome-nodejs - chai - Chai ζ―δΈδΈͺιε―Ή Node.js εζ΅θ§ε¨ηθ‘δΈΊι©±ε¨ζ΅θ―εζ΅θ―ι©±ε¨ζ΅θ―ηθ―ζεΊοΌε―δΈδ»»δ½ JavaScript ζ΅θ―ζ‘ζΆιζγ (Uncategorized / Uncategorized)
- awesome-javascript - chai - BDD / TDD assertion framework for node.js and the browser that can be paired with any testing framework. (Testing Frameworks / Assertion)
- awesome-node-modules - chai - BDD / TDD assertion framework for node.js and the browser that can be paired with any testing framework. (Uncategorized / Uncategorized)
README
chai
Chai is a BDD / TDD assertion library for node and the browser that can be delightfully paired with any javascript testing framework.For more information or to download plugins, view the [documentation](http://chaijs.com).
## 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](http://npmjs.org). To install it, type:
$ npm install --save-dev chai
### Browsers
You can also use it within the browser; install via npm and use the `chai.js` file found within the download. For example:
```html
```
## Usage
Import the library in your code, and then pick one of the styles you'd like to use - either `assert`, `expect` or `should`:
```js
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
```js
import 'chai/register-assert'; // Using Assert style
import 'chai/register-expect'; // Using Expect style
import 'chai/register-should'; // Using Should style
```### Import assertion styles as local variables
```js
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
```bash
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](http://chaijs.com/guide/styles/).
## Plugins
Chai offers a robust Plugin architecture for extending Chai's assertions and interfaces.
- Need a plugin? View the [official plugin list](http://chaijs.com/plugins).
- Want to build a plugin? Read the [plugin api documentation](http://chaijs.com/guide/plugins/).
- 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
- [chaijs / chai-docs](https://github.com/chaijs/chai-docs): The chaijs.com website source code.
- [chaijs / assertion-error](https://github.com/chaijs/assertion-error): Custom `Error` constructor thrown upon an assertion failing.
- [chaijs / deep-eql](https://github.com/chaijs/deep-eql): Improved deep equality testing for Node.js and the browser.
- [chaijs / check-error](https://github.com/chaijs/check-error): Error comparison and information related utility for Node.js and the browser.
- [chaijs / loupe](https://github.com/chaijs/loupe): Inspect utility for Node.js and browsers.
- [chaijs / pathval](https://github.com/chaijs/pathval): Object value retrieval given a string path.### Contributing
Thank you very much for considering to contribute!
Please make sure you follow our [Code Of Conduct](https://github.com/chaijs/chai/blob/master/CODE_OF_CONDUCT.md) and we also strongly recommend reading our [Contributing Guide](https://github.com/chaijs/chai/blob/master/CONTRIBUTING.md).
Here are a few issues other contributors frequently ran into when opening pull requests:
- Please do not commit changes to the `chai.js` build. We do it once per release.
- Before pushing your commits, please make sure you [rebase](https://github.com/chaijs/chai/blob/master/CONTRIBUTING.md#pull-requests) them.### Contributors
Please see the full
[Contributors Graph](https://github.com/chaijs/chai/graphs/contributors) 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.[![Jake Luer](https://avatars3.githubusercontent.com/u/58988?v=3&s=50)](https://github.com/logicalparadox)
[![Veselin Todorov](https://avatars3.githubusercontent.com/u/330048?v=3&s=50)](https://github.com/vesln)
[![Keith Cirkel](https://avatars3.githubusercontent.com/u/118266?v=3&s=50)](https://github.com/keithamus)
[![Lucas Fernandes da Costa](https://avatars3.githubusercontent.com/u/6868147?v=3&s=50)](https://github.com/lucasfcosta)
[![Grant Snodgrass](https://avatars3.githubusercontent.com/u/17260989?v=3&s=50)](https://github.com/meeber)