2016-03-08 2 views
0

У меня есть метод async, который запускает запрос БД, а затем записывает в журнал. Он ничего не возвращает и не нуждается в обратном вызове.Тестирование метода async без обратного вызова в mocha

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

TestableMode.method = function() { 


TestableMode.asyncThing(function(err) { 
    if (err) { 
     TestableMode.log.error('Log Error', { 
      'error': err 
     }); 
    } else { 
     TestableMode.log.info('Write results'); 

    } 
}); 

};

В настоящее время я использую мокко для запуска своих тестов. В других тестах я использовал sinon для поиска методов, могу ли я использовать эти spys в качестве триггера для утверждений? Могу ли я пройти тест, как только вызывается TestableMode.log.info, и не удается его, как только вызывается TestableMode.log.error?

ответ

0

Вы можете использовать sinon, чтобы шпионить «TestableMode.log.info» вместо того, чтобы вводить обратный вызов исключительно для целей тестирования. Если его сложно достичь утверждения о шпионаже в log.info, вы даже можете попробовать исправить успех и событие ошибки в обратном вызове запроса БД, так что вы можете вызвать обратный вызов мокко, когда событие будет испущено.

Смежные вопросы