我使用webpack-provide-plugin导入反应。
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运行反应组件测试时,我得到了错误
ReferenceError: React is not defined
当然,因为没有明确导入反应。除了显式导入和放弃提供插件之外,有没有办法解决这个问题?
答案 0 :(得分:14)
您可以像这样为Jest创建一个设置文件:
//jest.setup.js
window.React = require('react');
并将其添加到Jest配置:
"setupFiles": [ "<rootDir>/jest.setup.js" ]
,
http://facebook.github.io/jest/docs/configuration.html#setupfiles-array
答案 1 :(得分:0)
删除此行,因为您使用webpack提供插件证明此变量;
导入来自&#34;反应&#34;;
的反应