#javascript #unit-testing #jestjs #mocking
Вопрос:
Я знаю, что можно автоматически блокировать модули, чтобы вам не приходилось создавать для них макетные реализации.
Подобный этому:
file.test.js
jest.mock('./my-player.js');
import myPlayer from './my-player'
так что теперь myPlayer
меня бы уже высмеяли, чтобы я мог им воспользоваться.
Но что, если бы у меня был файл, в который я импортировал функцию:
other.test.js
import { getData } from './helpers';
должен ли я создать для этого макет реализации или есть способ заблокировать это?
Комментарии:
1. jestjs.io/docs/configuration#automock-boolean
2. Мне приходилось сталкиваться с этим раньше, единственным способом, который я нашел, было создание макета вручную в папке mocks
Ответ №1:
Вы можете автоматически издеваться над своими помощниками, вызывая jest.mock
, а затем импортируя функции, необходимые для ваших тестов, т. е.
jest.mock('./helpers');
import { getData } from './helpers';
jest.mock автоматически имитирует экспортируемые функции.