Как правильно тестировать подобные конструкции с использованием Mocha, Chai, Sinon?

Здравствуйте, уважаемое сообщество. Прошу подсказать/указать/направить на путь истинный). Только начал изучать nodejs и пытаюсь начать писать тесты. И практически сразу встал вопрос:

Есть скажем такая конструкция, упрощенно:

method1(arg1, arg2, callback);

method2(arg3, arg4, callback);

method3(arg5, callback) {
  async.waterfall([
    function(cb) {
      method1(agr1, arg2, function(error, result1) {
        if (error) return cb(error);
        
        // ... smth code
        
        cb(null, result1);
      });
    },
    function(result1, cb) {
      method2(agr3, arg4, function(error, result2) {
        if (error) return cb(error);
        
        // ... smth code
        
        cb(null, result2);
      });
    }
  ], function(error, results) {
    
    // ... smth code
    
  });
});


Вопросы, собственно, следующие:
1) Стоит ли тестировать method1, method2 отдельно? или же можно их тестировать уже для конкретно method3?
2) Читаю, что для более лаконичного вида тестов используют sinon, но и тут встает вопрос, ибо непонятно за что хвататься?

Если я правильно понял общий подход написания тестов, что желательно обертывать каждый метод/функцию в отдельный тест. В случае, если в одном методе используются какие-то сторонние вещи, то их заворачивать в spy, stub, mock. Но спустя немалое количество времени, я так и не могу наваять ничего стоящего конкретно для данного примера.

Заранее спасибо!
  • Вопрос задан
  • 444 просмотра
Пригласить эксперта
Ответы на вопрос 1
k12th
@k12th
console.log(`You're pulling my leg, right?`);
Если вы снаружи не вызываете method1 и method2, то их покрывать тестами не стоит, т.к. даже если они исчезнут, внешний код об этом не узнает.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы