reactjs - Jest 与 webpack 提供插件

标签 reactjs import webpack jestjs es6-modules

我正在使用 webpack-provide-plugin 导入 React。

new webpack.ProvidePlugin({
        "React": "react",
}),

//text.jsx

let text = (props) => (
  <div> 
    <p class="text">this.props.text</p>
  </div>
)

export default text 

//text.test.js

import React from 'react';
import { shallow } from 'enzyme';
import text from 'text';

it('Renders text', () => {
    const wrapper = shallow(<text/>);
    expect(wrapper.hasClass("text")).toEqual(true);
});

但是在使用 jest 运行 react 组件测试时,我收到错误

ReferenceError: React is not defined

当然,因为react没有显式导入。除了显式导入和放弃 Provide-plugin 之外,还有其他方法解决这个问题吗?

最佳答案

您可以为 Jest 创建一个安装文件,如下所示:

//jest.setup.js
window.React = require('react');

并将其添加到 Jest 配置中: "setupFiles": [ "<rootDir>/jest.setup.js" ] , http://facebook.github.io/jest/docs/configuration.html#setupfiles-array

关于reactjs - Jest 与 webpack 提供插件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39487906/

相关文章:

javascript - 如何向 `React.useState` 添加类型符号?

javascript - React Search 标题结果和 Pagination Material UI

git - git svn init 可以处理应该作为基本 checkout 一部分的主干/分支/标签的同级目录吗

javascript - react SSR : Document is not defined

javascript - 如何在 Node.js/ReactJS 中正确使用 DELETE by ID

javascript - typescript 可选链接结合三元运算符解析错误

MySQL 字段 DATETIME 截断 ISO8601

import - 如何在 google Colaboratory 中导入 .py?

javascript - 如何使用Angular从不同的服务器或CDN(运行时)动态加载子级?

node.js - Angular5 webpack ReferenceError : window is not defined