Я пытаюсь протестировать компонент React с помощью Jest и Enzyme, но мой тест не запускается, потому что, похоже, возникают проблемы с определенным модулем узла. Модуль, который нарушает тест, фактически импортируется из компонента, который находится внутри того, который я пытаюсь проверить.
Вот иерархия:
- Insights
- BuildOnScrollHelper ( здесь импортируется модуль узла ).
Когда я запускаю этот тест:
import React from 'react';
import { shallow } from 'enzyme';
import { View } from 'react-native';
import { Insights } from '../../containers/Insights';
import insightsMockData from '../../mocks/data/insights';
describe('Insights Container', () => {
let cmp;
beforeEach(() => {
cmp = shallow(
<Insights
{...insightsMockData}
loadReports={jest.fn()}
fetchGraph={jest.fn()}
/>,
);
});
it('does stuff', () => {
console.log(cmp.debug());
});
});
Я получаю эту ошибку от Jest в консоли:
Если я зайду в свой Insights React Component и закомментирую компонент BuildOnScrollHelper ( и его оператор импорта ), тест будет работать отлично.
У меня было две идеи:
- Мне даже не нужно издеваться над модулем узла, возможно, я мог бы просто смоделировать BuildOnScrollHelper сам по себе? Для этого теста мне наплевать на функциональность BuildOnScrollHelpers .
- Мне нужно будет смоделировать модуль узла.
Кто-нибудь знает, как мне поступить так, что считается хорошей практикой? Я потратил несколько часов, пытаясь найти решение этой проблемы, но все еще не могу заставить мой тест работать.
В идеале я хотел бы получить ответ, содержащий несколько примеров кода, а не просто ссылку на фрагмент документации.