В моем тесте всегда используется фиктивный модуль «request-обещание-нативный», даже когда jest.mock («запрос-обещание-нативный») закомментирован.
Структура проекта следующая:
project
└───__mocks__
│ └───request-promise-native.js
└───node_modules
│ │ folder1
│ │ ...
│ └───request-promise-native
│ │ │ lib
│ │ │ ...
└───src
│ │ file1
│ │ ...
└───test
└───sometest.test.js
В sometest.test.js я использую jest.mock("request-promise-native");
, и это успешно использует фиктивную версию request-обещание-нативную (доказано с помощью console.log в фиктивной версии).
Когда я комментирую jest.mock("request-promise-native");
в sometest.test.js, фиктивная версия все еще используется ?!У меня сложилось впечатление, что для параметра jest automock по умолчанию установлено значение false, поэтому в нем должна использоваться актуальная версия модуля?
Чтобы попытаться понять все это, я установил для параметра autoock значение false в конфигурации.файл и он все тот же.
Единственный способ получить действительную версию, которую я могу использовать, - это заменить jest.mock("request-promise-native");
на jest.unmock("request-promise-native");
или переименовать request-promise-native.js в
Это ошибка с шуткой или моей установкой?У меня есть другие ручные макеты приватных модулей, и они ведут себя как положено: версия макета, используемая, когда jest.mock () присутствует, и оригинальная версия, используемая, когда jest.mock закомментировал.
Я нашел сообщение об ошибке для аналогичногопроблема https://github.com/facebook/jest/issues/1552 но, похоже, она уже давно решена.
Это происходит из-за того, что я пытаюсь смоделировать модуль в папке node_modules?
Любая помощь сэто было бы здорово, так как я хотел бы иметь возможность контролировать, какая версия модуля используется (макет для модульного теста, нормальный для интеграционных тестов), а также иметь уверенность в том, что проверенные модули используются только тогда, когда я использую jest.mock().