我正在使用Jest测试,爱上snapshot。
我没有在我的组件中导入React,因为我在捆绑代码时通过webpack提供它,但是当我运行测试时,webpack没有被包含,当我得到一个:
错误:
ReferenceError: React is not defined
at Object.<anonymous> (src/components/breadcrumb/Breadcrumb.jsx:22:35)
at Object.<anonymous> (test/components/components.test.js:3:19)
at process._tickCallback (internal/process/next_tick.js:109:7)
webpack:
new webpack.ProvidePlugin({
React: 'react'
})
测试:
import React from 'react';
import Breadcrumb from '../../src/components/breadcrumb/Breadcrumb';
import renderer from 'react-test-renderer';
describe.only('Components ', () => {
test('Breadcrumb.jsx', () => {
const tree = renderer.create(
<Breadcrumb path={['uno', 'due']} />
).toJSON();
expect(tree).toMatchSnapshot();
});
});
组件:
import PropTypes from 'prop-types';
import I18n from '../../decorators/I18n';
@I18n
class Breadcrumb extends React.Component {
static propTypes = {
path: PropTypes.array.isRequired
}
getBreadcrumb = () => {
return this.props.path.map((el, key) => {
return (
<span key={key}>{el}</span>
);
});
}
render() {
return <div>{this.getBreadcrumb()}</div>;
}
}
export default Breadcrumb;
请你帮我一些例子吗? 我已经看到有关于这些问题的事情,但最后我找不到(或者不支持)解决方案。
答案 0 :(得分:1)
尝试在Breadcrumb文件中导入 React 。