title: What is the role of describe() in Mocha?
body: <p>The documentation at <a href="https://mochajs.org/#asynchronous-code" rel="noreferrer">the official Mocha site</a> contains this example:</p>
  
  <pre><code>describe('User', function(){
    describe('#save()', function(){
      it('should save without error', function(done){
        var user = new User('Luna');
        user.save(function(err){
          if (err) throw err;
          done();
        });
      })
    })
  })
  </code></pre>
  
  <p>I want to know when I should nest my tests in the <code>describe</code> function and what the basic purpose of <code>describe</code> is. Can I compare the first argument passed to <code>describe</code> to comments in a programming language? Nothing is shown of <code>describe</code> in the output on the console. Is it only for readability purposes, or there is some other use for this function? </p>
  
  <p>Is there anything wrong if I use it like this?</p>
  
  <pre><code>describe('User', function(){
      describe('#save()', function(){
          var user = new User('Luna');
          user.save(function(err){
              if (err) throw err;
              done();
          })
      })
  })
  </code></pre>
  
  <p>If I do it this way, the test still passes.</p>