2017-02-06 8 views
1

У меня есть функция, как это:Как шпионить обратный вызов аргумент

var updateSomething = function(arg1, arg2, callback) { 
    ... 
    db.update(arg, function(err, res) { 
    callback(err, res); 
    }); 
}; 

Я тестирование API делает некоторые запросы, которые внутренне вызов этой функции, и я заинтересован в известном значении обратного вызова, когда это Как я могу шпионить с Sinon значение res и err в моем модульном тесте?

+1

Вот где инъекции зависимость пригождается. На самом деле есть приятное начало видео: https://www.youtube.com/watch?v=0X1Ns2NRfks&list=LL0OkHqip6ufJ94z9og1nIHw&index=4 – eol

+0

Хорошая информация, спасибо помощнику! –

ответ

0

Предположим, что ваш API принимает callback аргумент из-за:

var callbackSpy = sinon.spy(); 

yourAPI.fetchSomething(arg1, arg2, callbackSpy); 

console.log(callbackSpy.args[0]); 
+0

Спасибо за ваш ответ, я не принимаю обратный вызов извне, в этом случае было бы намного проще, мне не понадобился бы шпион, чтобы получить значения –

+0

О, правильно ... Ну, я думаю, что я затормозил тогда: D Анекдоты в остальном, то, что вы спрашиваете, невозможно, если 'updateSomething' определяется как приватная переменная –

+0

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