Модульное тестирование, звучит красиво, не так ли? Но что это? И как вы это делаете?

Модульное тестирование включает в себя проверку того, что каждая из ваших функций принимает правильные аргументы и возвращает то, что вы, разработчик, намеревались вернуть. Это о длинном и коротком.

Итак, теперь мы знаем, что такое модульное тестирование, но как мы это делаем? Вы захотите начать с выбора библиотеки тестирования и библиотеки утверждений. Какой из них вы выберете, на самом деле не имеет значения. Все они имеют одинаковый базовый функционал. Мне нравилось использовать mochajs и chaijs, поэтому я буду ссылаться на эти две библиотеки.

Отлично, у вас есть библиотека. Сделаем тест. Модульное тестирование началось с тех пор, как я понял шаблон, которому следует каждый тест.

Вы даете тесту функцию, вы передаете этой функции некоторую информацию, вы проверяете, соответствует ли полученная вами информация тому, что вы ожидаете. Позвольте мне показать вам основной пример.

describe('GET /', function(){
  it('responds with index.html', function(done){
    superTest('localhost:8080')
      .get('/')
   .set('Accept', 'text/html')
      .expect(200)
      .end(function(err, res){
        if (err) return done(err);
        done();
      });
  });
});

Я использую мокко, чтобы описать то, что мы тестируем. Он устанавливает контекст для нашего теста. Затем я использую отдельный модуль, называемый супертестом, чтобы убедиться, что мой сайт отправляет html-страницу, когда пользователь делает запрос на домашнюю страницу. Что хорошего во многих из этих библиотек, так это то, что они напоминают английский язык. Методы очень описательные, и обычно они делают то, на что они похожи.

Модульное тестирование может показаться пугающим, но, в конце концов, это просто проверка того, что ваш код делает именно то, что вы от него хотите.