ReferenceError:在笑话测试中未定义React

时间:2019-11-21 17:51:12

标签: reactjs jestjs babel-jest

我有以下一行可以在浏览器中正确执行

eval(Babel.transform(template, { presets: ['react'] }).code);

但是当我进行开玩笑的测试时,我得到ReferenceError: React is not defined

我想念什么?

更多信息: 在测试文件中,我具有以下内容:

const wrapper = shallow(<MyComponent/>);
const instance = wrapper.instance();
instance.componentFunction(...)

,然后componentFunction在eval(Babel.transform(template, { presets: ['react'] }).code);行中,其中template是它从测试文件中获取的内容,并且可以像<span>...</span>

请让我知道是否需要更多详细信息

1 个答案:

答案 0 :(得分:1)

如果在Jest测试文件中使用JSX,则需要在文件顶部添加以下导入行:

import React from 'react';

这样做的原因是Babel将JSX语法转换为一系列React.createElement()调用,如果您无法导入React,则这些调用将失败。