Как заглушить внешний API для тестирования - PullRequest
3 голосов
/ 19 июля 2011

У меня есть проект, который делает некоторые вызовы API Twitter с сервера node.js, который я хотел бы протестировать.Однако я не хочу тестировать API-интерфейс Twitter (OAuth и сам API-интерфейс, который я вызываю), поэтому я подумал, что было бы лучше его отключить.

Я нашел sinon.js, который поддерживает этопредположительно.Я не нашел пример того, как это сделать, и мне было интересно, если это было сделано раньше.И если так, то просмотр некоторого примера кода действительно поможет.

1 Ответ

3 голосов
/ 19 июля 2011

Что вы делаете для вызова API?

Представьте себе, что вы используете метод с именем api.call('url', function (error, response) {...}):

, вы можете «подделать» обратный вызов с помощью sinon, мягко или как угодно.

Пример использования аккуратно:

gently.expect(api, 'call', function (url, callback) {
  assert.equal(url, 'http://api.twitter.com/...');
  callback(Error('Fake error'), null);
});
...