Итак, я новичок в издевательстве над модулем, используя jest.mock ()
Итак, вот сценарий, я создал модуль узла и загрузил его в личный реестр npm, где я могу найти этот модуль в своем приложении.
Если предположить, что имя модуля @ a / lp-mod , и если это index.js этого модуля:
export const lpr = async () => {
// some code that does something and returns some data back
}
export default {
lpr
}
Теперь давайте предположим, что мне нужно смоделировать этот модуль (@ a / lp-mod) и возвращать некоторые статические данные всякий раз, когда функция lpr вызывается в контексте тестового примера.
Итак, вот код, который я написал:
> proj_directory
|---->__mocks__
| |--->@a
| | |--->lp-mod --> this directory has index.js with mock data
|---->node_modules
| |--->@a
| | |--->lp-mod --> this directory has index.js inside /src
| | |---> src
| | | |---> index.js
|---->test
| |--->1.test.js --->
node_modules/@a/lp-mod/src/index.js
// some npm imports like axios
export const lpr = async () => {
// has some I/O calls, but let's just keep it simple
return Promise.resolve('I am original call')
}
export default {
lpr
}
__mocks__/@a/lp-mod/index.js
const p = jest.genMockFromModule('@a/lp-mod')
p.lpr = () => Promise.resolve('This is mocked call')
export default p
1.test.js
// before describe (test case) I wrote this
jest.mock('@a/lp-mod')
Но я получаю undefined , когда файл пытается импортировать оригинальный модуль @ a / lp-mod для использования внутри контекста теста.
Согласно моим ожиданиям, он должен получить проверенный модуль и вернуть оттуда данные только в том случае, если я тестирую свое приложение.
Пожалуйста, пролите немного света и потерпите меня, если какая-то информация отсутствует, пожалуйста, дайте мне знать, если есть какие-либо сомнения.
Удачного кодирования:)