Jest - Как получить покрытие для надуманных классов и реализаций - PullRequest
0 голосов
/ 15 мая 2018

В настоящее время я работаю над проектом, в котором я использую Jest для модульного тестирования и покрытия кода.

Все работает нормально, за исключением покрытия для фиктивных классов / методов.Кажется, я не получаю желаемых результатов освещения.Я пытался найти что-то в документах Jest и искал в Интернете ответ, но, похоже, ничего не могу найти по этому поводу.

Дело в том, что когда я использую поддельную реализацию (например, ./services/__mocks__/UserService.js), фактическая реализация (./services/UserService.js) приводит к охвату 0%.Это логичный результат, поскольку реализация перезаписывается фиктивным.

Я могу обойти это, используя /* istanbul ignore next */ для каждого метода в реальном сервисе, или просто добавив фактические сервисы в свойство coveragePathIgnorePatternsв установочном файле Jest и пусть он генерирует покрытие для всех максируемых классов, но мне интересно, есть ли способ, чтобы Jest автоматически использовал макетированную реализацию для генерации результатов покрытия.

Каков путь длявысмеиваемые классы / функции и покрытие кода?

Заранее спасибо!

1 Ответ

0 голосов
/ 24 апреля 2019

Как указано в документации, для ручных макетов , вы будете использовать ./services/__mocks__/UserService.js, только если вы явно назвали что-то вроде jest.mock('./services/UserService');.

Если вы хотите написать тесты для ./services/UserService, убедитесь, что вы не используете jest.mock('./services/UserService'); перед этими тестами.

...