Reactjs 在不引发异常的情况下使用Error()
我有一个名为React的组件,它可以接受字符串或实际的错误对象 以下Jest/酶代码有效: 它“使用错误属性渲染”,=>{ 常数分量=浅; expectcomponent.text.toMatchSnapshot; expectcomponent.text.toEqual'Foobar'; }; 但是,以下情况并非如此: 它“使用新的错误属性进行渲染”,=>{ 常量错误=新错误'Foobar'; 常数分量=浅; expectcomponent.text.toMatchSnapshot; expectcomponent.text.toEqual'Foobar'; }; 新的错误行导致RangeError:超出了最大调用堆栈大小 我试着把它包起来,但它会吞下一切 我已经试着按expect=>{…}的方式运行了它,但是我无法让它运行断言——似乎只有当您想将它导入到.toThrow时,它才真正起作用 以下内容一开始看起来很有希望,但实际上并没有向catch中的error参数发送任何内容:Reactjs 在不引发异常的情况下使用Error(),reactjs,jestjs,enzyme,Reactjs,Jestjs,Enzyme,我有一个名为React的组件,它可以接受字符串或实际的错误对象 以下Jest/酶代码有效: 它“使用错误属性渲染”,=>{ 常数分量=浅; expectcomponent.text.toMatchSnapshot; expectcomponent.text.toEqual'Foobar'; }; 但是,以下情况并非如此: 它“使用新的错误属性进行渲染”,=>{ 常量错误=新错误'Foobar'; 常数分量=浅; expectcomponent.text.toMatchSnapshot; expe
it('renders with new Error() error prop', () => {
try {
new Error('Foobar');
}
catch (error) {
const component = shallow(<Error error={error} />);
expect(component.text()).toMatchSnapshot();
expect(component.text()).toEqual('Foobar');
}
});
有什么想法吗?提前感谢。在您的测试文件中尝试以下内容:
import Error as ErrorComponent from './error/component.jsx'; //Or wherever this is
您还可以尝试以不同的方式命名错误组件
希望这能有所帮助。这里的新错误“Foobar”基本上是调用您的错误组件,正如下面的答案所建议的,重命名您的错误组件以避免覆盖javascript错误。啊,我太笨了。这是漫长的一天,一周。。。月谢谢我只需要从导入ErrorComponent,因为我没有使用TSP还有第二个问题:我的组件在某个点本身抛出了一个错误,导致了一个无限的循环,不用担心,试着在VSCode中安装一些代码助手工具,这样你就不必担心这些问题。我有很多东西可能会发现变量冲突,但可能它有一个问题,特别是错误/shugh