Невозможно получить доступ к переменным в функции jest.mock - PullRequest
0 голосов
/ 13 марта 2020

Пожалуйста, проверьте ниже сценарий

const url = 'https://mock.com/mockpath';
jest.mock('../../src/somefile', () => {
  return ({
    getURL: jest.fn(() => url),
  });
});

Я получаю ошибку

babel-plugin-jest-hoist: The module factory of `jest.mock()` is not allowed to reference any out-of-scope variables.
Invalid variable access: url

Ответы [ 2 ]

0 голосов
/ 13 марта 2020

Предоставлено @ skyboyer

Просто переименуйте URL в mockUrl, любая переменная, начинающаяся с mock, доступна внутри jest.mock.

@ skyboyer Еще раз спасибо за помощь.

0 голосов
/ 13 марта 2020
'jest.mock()' is not allowed to reference any out-of-scope variables. Invalid variable access: mockURL

Это говорит вам, что jest.mock() пытается получить доступ к mockURL, но ему не разрешен доступ к переменной вне области действия.

Вы должны объявить mockURL внутри jest.mock() вызов функции:

jest.mock('../../src/somefile', () => {
  const mockURL = 'https://mock.com/mockpath';
  return ({
    getURL: jest.fn(() => mockURL),
  });
});

Или вы можете просто ссылаться на строку без использования промежуточной переменной:

jest.mock('../../src/somefile', () => ({
  getURL: jest.fn(() => 'https://mock.com/mockpath'),
}));
...