Попытка смоделировать / заменить функции внутри функций - PullRequest
0 голосов
/ 14 мая 2018

вот код, который я пытаюсь высмеять:

stats.totalRequests.labels('incoming').inc(x);

я пытался:

const incFunc = function inc(a) {
        return true;
    };

const stats = {
   totalRequests: {
       labels: (a, b, c) => incFunc(a)
            }
    };

module.__set__('stats', stats);

Я также попытался вместо этого установить ярлыки как sinon.stub (). но я продолжаю получать сообщение об ошибке TypeError: stats.totalRequests.labels (...). inc не является функцией.

есть идеи, как мне этого добиться? мне не нужны никакие функциональные возможности, я просто не хочу, чтобы исходная строка в коде делала что-либо. это может быть заглушка / пустая функция или что угодно Большое спасибо

1 Ответ

0 голосов
/ 15 мая 2018

Проблема в том, что вам нужно labels вернуть объект со свойством inc.

Пример:

const stats = {
  totalRequests: {
    labels(arg) {
      console.log('labels: ' + arg);
      return {
        inc(x) {
          console.log('inc: ' + x);
        }
      };
    }
  }
};

let x = 12;
stats.totalRequests.labels('incoming').inc(x);
...