Пользовательские имитации
Пользовательские заглушки используются для имитации функционала с помощью мок данных. Например вместо того, чтобы обращаться к удаленному ресурсу такому как веб-сайт или база данных, можно создать собственную заглушку, которая позволит использовать имитируемые данные. Это гарантирует, что тесты будет быстрыми и надежными.
Иммитация пользовательских модулей
Файлы с имитациями пользовательских модулей помещаются в папку __mocks__/
, которая должна находи тся в одной директории с оригинальным модулем. Например, чтобы симитировать модуль user
в директории models
, создайте файл user.js
и поместите его в models/__mocks__
.
The __mocks__
folder is case-sensitive, so naming the directory __MOCKS__
will break on some systems.
When we require that module in our tests (meaning we want to use the manual mock instead of the real implementation), explicitly calling jest.mock('./moduleName')
is required.
Имитация модулей Node
Если вы имитируете Node модуль, (например, lodash
), файл с заглушкой должен находиться в директории __mocks__
на одном уровне с node_modules
(исключение: roots
указывает не на корневую директорию проекта) и будет симитирован автоматически. Вызов jest.mock('module_name')
не нужен.
Для модулей с пространствами имен (scoped packages) создайте подкаталог с именем пространства и поместите в него файл с заглушкой. Например, если у вас есть модуль @scope/project-name
, создайте файл __mocks__/@scope/project-name.js
в подкаталоге @scope/
.
If we want to mock Node's built-in modules (e.g.: fs
or path
), then explicitly calling e.g. jest.mock('path')
is required, because built-in modules are not mocked by default.
Примеры
.
├── config
├── __mocks__
│ └── fs.js
├── models
│ ├── __mocks__
│ │ └── user.js
│ └── user.js
├── node_modules
└── views