Как правильно тестировать подобные конструкции с использованием 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, то их покрывать тестами не стоит, т.к. даже если они исчезнут, внешний код об этом не узнает.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы