jest snapshot:ReferenceError:未定义React

时间:2017-07-11 11:09:20

标签: reactjs snapshot jest

我正在使用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;

请你帮我一些例子吗? 我已经看到有关于这些问题的事情,但最后我找不到(或者不支持)解决方案。

1 个答案:

答案 0 :(得分:1)

尝试在Breadcrumb文件中导入 React