Mocha (JavaScript framework)
This article has multiple issues. Please help improve it or discuss these issues on the talk page. (Learn how and when to remove these template messages)
 
 
  | 
| Developer(s) | OpenJS Foundation | 
|---|---|
| Initial release | 22 November 2011 | 
| Stable release | 10.0.0
   / 1 May 2022  | 
| Repository | github | 
| Written in | JavaScript | 
| Platform | Node.js | 
| Type | Test automation framework | 
| License | MIT | 
| Website | mochajs | 
Mocha is a JavaScript test framework for Node.js programs, featuring browser support, asynchronous testing, test coverage reports, and use of any assertion library.[1]
Assertion libraries[edit]
Mocha can be used with most JavaScript assertion libraries, including:
- should.js
 - express.js
 - chai
 - better-assert
 - unexpected
 
Usage and examples[edit]
$ npm install -g mocha
$ mkdir test
$ $EDITOR test/test.js # or open with your favorite editor
var assert = require("assert")
describe('Foo', function(){
  describe('#getBar(value)', function() {
    it('should return 100 when value is negative') // placeholder
    it('should return 0 when value is positive', function() {
      assert.equal(0, Foo.getBar(10));
    })
  })
})
$  mocha
.
1 test complete (1ms)
For asynchronous testing, invoke the callback, and Mocha will wait for completion.
describe('Foo', function(){
  describe('#bar()', function() {
    it('should work without error', function(done) {
      var foo = new Foo(128);
      foo.bar(done);
    })
  })
})