在Babel 7中,Jest无法正确地运行Redux组件测试,这是因为Babel 7更改了其默认的配置,需要手动添加一些设置来使其正常运行。
以下是解决这个问题的步骤:
npm install --save-dev babel-jest @babel/core @babel/preset-env
{
"presets": ["@babel/preset-env"]
}
这将告诉Babel使用@babel/preset-env来转换代码。
{
"jest": {
"transform": {
"^.+\\.js$": "babel-jest"
}
}
}
这将告诉Jest使用babel-jest转换测试文件。
这样,你应该能够成功运行Redux组件的测试了。
以下是一个示例测试文件的代码:
import React from 'react';
import { render } from '@testing-library/react';
import { Provider } from 'react-redux';
import configureStore from 'redux-mock-store';
import MyComponent from './MyComponent';
const mockStore = configureStore([]);
describe('MyComponent', () => {
it('renders without crashing', () => {
const store = mockStore({
// mock your redux store data here
});
render(
);
});
});
请注意,上述代码假设你已经安装了react-redux、redux-mock-store和@testing-library/react等依赖项。
希望这可以帮助你解决Babel 7与Jest无法运行Redux组件测试的问题!