В процессе разработки у нас может быть множество модулей, и для каждого может быть определено несколько тестов. С помощью метода describe(), который определен в mocha.js, можно оформить тесты в связанные группы. Например, тесты по одному модулю будут составлять одну группу, а тесты другого модуля будут оформлять соответственно другую группу. Разбиение на группы позволит легко идентифицировать, для какого модуля или группы не прошел тест, особенно если тестов очень много.
Например, пусть в проекте будет модуль operations.js:
Для этого модуля определим файл тестов operations.test.js:
1 2 3 4 5 6 7 8 9101112131415
varassert=require('assert');varoperations=require('./operations');describe('Operation Tests',function(){it('should multiply two numbers',function(){varexpected=15;varresult=operations.multiply(3,5);assert.equal(result,expected);});it('should add two numbers',function(){varexpected=16;varresult=operations.add(9,7);assert.equal(result,expected);});});
В метод describe() в качестве первого параметра передается описание тестов, а в качестве второго - функция, которая содержит тесты.
constrequest=require('supertest');constassert=require('assert');varapp=require('./app').app;describe('Express Tests',function(){it('should return Hello Test',function(done){request(app).get('/').expect('Hello Test').end(done);});it('should return NotFound with status 404',function(done){request(app).get('/error').expect(404).expect('NotFound').end(done);});it('should return user with name Tom and age 22',function(done){request(app).get('/user').expect(function(response){assert.deepEqual(response.body,{name:'Tom',age:22,});}).end(done);});});