В случае, если кто-то еще сталкивается с этим, я нашел ответ, и он многое объясняет о характере тестирования.
Когда вы тестируете, вы хотите протестировать функциональность только одного компонента илидействие за один раз (ЕДИНОЕ ТЕСТИРОВАНИЕ).Пытаясь протестировать компонент, который вытягивал другую зависимость, я фактически пытался протестировать две вещи одновременно, не осознавая этого.
Компонент MyComponent
необходимо тестировать отдельно от теговых методов media
.
В MyComponent
мне все равно, что было возвращено из тега media
шаблонный метод.Меня волнует только то, какой метод был вызван, и параметры вызова.
Я могу настроить другой отдельный тест для методов media
, чтобы убедиться, что эти методы работают должным образом, и проверить их по отдельности.
Таким образом, в jest
вы можете смоделировать импорт модуля.
внутри Моего тестового файла
import React from 'react';
import { shallow } from 'enzyme';
import MyComponent from 'components';
jest.mock('css', () => ({
media: {
small: jest.fn(),
medium: jest.fn(),
large: jest.fn(),
},
})
describe('<MyComponent />, () => {
it('should match snapshot', () => {
const snap = shallow(<MyComponent />);
expect(snap).toMatchSnapshot();
});
});