我正在使用Create React App。我创建了一个使用手动模拟的Jest测试。该测试呈现了我的App组件,并且我正在尝试模拟嵌套的组件。它仍在使用原始的BarChart组件。
containers/__tests__/App.js
import React from 'react';
import { shallow, mount } from 'enzyme';
const barChartPath = '../../components/d3/BarChart/BarChart';
describe('App', () => {
beforeEach(() => {
const mockBarChart = require('../../components/d3/BarChart/__mocks__/BarChart').default;
jest.mock(barChartPath, () => mockBarChart);
});
it('renders without crashing - deep', () => {
const App = require('../App').default;
mount(<App />);
});
});
我尝试使用
import BarChart from '../../components/d3/BarChart/BarChart';
...
beforeEach(() => {
jest.mock(BarChart)
但是那也不起作用。
由于Manual mock not working in with Jest
中所述的问题,我在beforeEach中使用了require语句setupTests.js
import { configure } from 'enzyme';
import Adapter from 'enzyme-adapter-react-16';
configure({ adapter: new Adapter() });