Jam*_*ber 6 javascript testing reactjs jestjs enzyme
jest/enzyme在组件上使用连接时,我在运行简单测试时遇到问题。我尝试dive()按照此处的建议使用:Testing a Redux-connected component using Enzyme。但错误仍然完全相同。
我希望能够测试用浅包裹的组件而不是这个错误(显然)
FAIL src/containers/Home/index.test.js
? Test suite failed to run
/var/www/cloud/websites/www/node_modules/react-redux/es/connect/connect.js:5
import connectAdvanced from '../components/connectAdvanced';
^^^^^^^^^^^^^^^
SyntaxError: Unexpected identifier
at new Script (vm.js:74:7)
at Object.<anonymous> (src/components/shared/buttons/index.js:3:16)
Test Suites: 1 failed, 1 total
Tests: 0 total
Snapshots: 0 total
Time: 1.482s
Ran all test suites related to changed files.
Watch Usage: Press w to show more.
Run Code Online (Sandbox Code Playgroud)
import React, { PureComponent, Fragment } from 'react';
import ButtonUI from '../../components/shared/buttons';
export default class Home extends PureComponent {
render() {
return (
<ButtonUI galabel="testLabel" gaaction="testAction">
Fire GA Test
</ButtonUI>
);
}
}
Run Code Online (Sandbox Code Playgroud)
import React, { PureComponent } from 'react';
import connect from 'react-redux/es/connect/connect';
class ButtonUI extends PureComponent {
render() {
return (
<button>
{this.props.children}
</button>
);
}
}
export default connect()(ButtonUI);
Run Code Online (Sandbox Code Playgroud)
import React, { PureComponent } from 'react';
import Home from './index.js';
import { shallow, mount, render } from 'enzyme';
const wrapper = shallow(<Home />).dive();
describe('Home Page Can Render', () => {
it('Contains a header', () => {
expect(wrapper.find('h5')).to.have.lengthOf(1)
});
});
Run Code Online (Sandbox Code Playgroud)
"react-router": "^4.3.1",
"react-router-dom": "^4.3.1",
"connected-react-router": "^4.4.1",
"enzyme": "^3.6.0",
"enzyme-adapter-react-16": "^1.5.0",
"enzyme-to-json": "^3.3.4",
"react-scripts": "^2.1.1",
Run Code Online (Sandbox Code Playgroud)
connect被导入为 es6 模块,NodeJS运行时不知道如何处理它。
import connect from 'react-redux/es/connect/connect';
Run Code Online (Sandbox Code Playgroud)
通常库作者将他们的库转译为 commonjs以实现与多个环境的互操作性,并将其作为其模块的入口点
虽然您可以更新您的捆绑器配置以从node_modules文件夹转译模块导入,但我建议改用模块入口点,因为这样更直接。
import { connect } from "react-redux";
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1303 次 |
| 最近记录: |