шутка не вылезает за рамки фиктивных переменных - PullRequest
0 голосов
/ 25 февраля 2019

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

Вот мой код:

const mockLogger = {
  'error': jest.fn()
};
jest.mock('../../config/log', () => mockLogger);

Мне нужно проверить, был ли вызван log.error, поэтому мне нужно объявить фиктивную реализацию log вне области действия.Однако я продолжаю получать следующую ошибку:

 ReferenceError: mockLogger is not defined

      20 |   'error': jest.fn()
      21 | };
    > 22 | jest.mock('../../config/log', () => mockLogger);

Самое смешное, что у меня есть очень похожий кусок кода, который работает в другом проекте.Я не могу понять, почему я получаю эту ошибку.

Я знаю, что это проблема со сферой, но не знаю, что с этим делать.Любой вклад в это будет действительно полезным!

1 Ответ

0 голосов
/ 25 февраля 2019

Проблема заключается в том, что вызовы jest.mock перемещаются во внешнюю область тестового файла во время выполнения.Таким образом, у вас нет возможности использовать какую-либо переменную из теста.Самый простой в вашем случае будет:

jest.mock('../../config/log', () => ({
  'error': jest.fn()
}));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...