| CARVIEW |
Select Language
HTTP/2 200
server: GitHub.com
content-type: text/html; charset=utf-8
last-modified: Sun, 08 Jun 2025 00:18:04 GMT
access-control-allow-origin: *
etag: W/"6844d6bc-582a"
expires: Tue, 30 Dec 2025 06:51:26 GMT
cache-control: max-age=600
content-encoding: gzip
x-proxy-cache: MISS
x-github-request-id: E193:2BC55:9B89C5:AEB83A:69537415
accept-ranges: bytes
age: 0
date: Tue, 30 Dec 2025 06:41:26 GMT
via: 1.1 varnish
x-served-by: cache-bom-vanm7210036-BOM
x-cache: MISS
x-cache-hits: 0
x-timer: S1767076886.980758,VS0,VE201
vary: Accept-Encoding
x-fastly-request-id: e915c3330a2d98ed52082554337319b6724f7ef1
content-length: 4096
Chai
Should
Chai is a BDD / TDD assertion library for node and the browser that can be delightfully paired with any javascript testing framework.
Download Chai v5.2.0
for Rails Another platform? Node Browser
Chai is available through Konacha, a modern
test harness that takes full advantage of
Rails 3 features such as the asset pipeline
and engines.
Konacha GitHub Project
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.
chai-webdriver
Featured Plugin
Create expressive integration tests with chai and
selenium-webdriver.
chai.use(chaiWebdriver(driver));
driver.get('https://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.
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.
chai-webdriver
Featured Plugin
Create expressive integration tests with chai and
selenium-webdriver.
chai.use(chaiWebdriver(driver));
driver.get('https://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.
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);
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.
chai-webdriver
Featured Plugin
Create expressive integration tests with chai and selenium-webdriver.
chai.use(chaiWebdriver(driver));
driver.get('https://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.