nfpyfzyf
nfpyfzyf

Reputation: 2991

Does '#' has special meaning in Mocha?

describe('#indexOf()'....
it('#doSth()');

Does '#' has special meaning in Mocha? What does describe and it actually do? sorry not found document for describe and it

Upvotes: 7

Views: 1956

Answers (2)

samwize
samwize

Reputation: 27363

The '#' has no special meaning. It is a common standard to prefix # to a method for a certain class. e.g. Array#indexOf().

I had exactly the same questions on describe() and it(), which the documentation didn't explain much.

Hence I wrote a blog post on a guide to mocha. In short:

  • describe() is merely for grouping, which you can nest as deep. Also known as a test suite.

  • it() is a test case

Upvotes: 8

NilsH
NilsH

Reputation: 13821

describe and it follows a pattern called BDD, which means "Behaviour Driven Development". It just defines an interface that makes you think a little different about how you write your tests, at least it should. Nesting of describe also makes it possible to group your tests functionally, and the resulting report has a "readable" feeling to it.

Quoting the example from the Mocha docs:

describe('Array', function(){
    describe('#indexOf()', function(){
        it('should return -1 when the value is not present', function(){
            assert.equal(-1, [1,2,3].indexOf(5));
            assert.equal(-1, [1,2,3].indexOf(0));
        })
    })
})

It reads:

Array#indexOf() should return -1 when the value is not present

The first two describes just sets up the (descriptional/grouping) scope, and the it is the actual test that is run. # has no special meaning. In this case, it just makes the output text/report look a little more API-doc like.

Upvotes: 11

Related Questions