VOOZH about

URL: https://www.chaijs.com/

⇱ Chai


Chai has several interfaces that allow the developer to choose the most comfortable. The chain-capable BDD styles provide an expressive language & readable style, while the TDD assert style provides a more classical feel.

Should

chai.should();

foo.should.be.a('string');
foo.should.equal('bar');
foo.should.have.lengthOf(3);
tea.should.have.property('flavors')
 .with.lengthOf(3);
 

Expect

var expect = chai.expect;

expect(foo).to.be.a('string');
expect(foo).to.equal('bar');
expect(foo).to.have.lengthOf(3);
expect(tea).to.have.property('flavors')
 .with.lengthOf(3);
 

Assert

var assert = chai.assert;

assert.typeOf(foo, 'string');
assert.equal(foo, 'bar');
assert.lengthOf(foo, 3)
assert.property(tea, 'flavors');
assert.lengthOf(tea.flavors, 3);
 

Plugins extend Chai's assertions to new contexts such as vendor integration & object construction. Developers can build their own plugins to share with community or use the plugin pattern to DRY up existing tests.

Featured Plugin

Create expressive integration tests with chai and selenium-webdriver.

 chai.use(chaiWebdriver(driver));
driver.get('http://chaijs.com/');
expect('nav h1').dom.to.contain.text('Chai');
expect('#node .button').dom.to.have.style('float', 'left');

 

Custom Plugins

Browse our growing directory of custom plugins & vendor integrations to find the best tool for your needs.

Develop Plugins

Chai has an extensive utility belt for plugin developers. Learn how to build your plugins & share.

Powered by Open Source

Chai is hosted on GitHub. Have a suggestion or found a bug? Fork this project to help make Chai even better. Even this documentation site is open source and available for contribution.

Join our Community

We have an active mailing list available at our Google Group, or drop by freenode IRC #chaijs channel to get help anytime.