使用Error()不会在Jest中引发异常

问题描述 投票:0回答:1

我有一个称为<Error />的React组件,它可以接受字符串或实际的Error()对象。

下面的这些笑话/酶代码起作用:

it('renders with error prop', () => {
  const component = shallow(<Error error="Foobar" />);
  expect(component.text()).toMatchSnapshot();
  expect(component.text()).toEqual('Foobar');
});

但是,以下内容没有:

it('renders with new Error() error prop', () => {
  const error = new Error('Foobar');
  const component = shallow(<Error error={error} />);
  expect(component.text()).toMatchSnapshot();
  expect(component.text()).toEqual('Foobar');
});

new Error()行导致RangeError: Maximum call stack size exceeded

我已经尝试将其包装在try {} catch () {}中,但它只会吞没所有东西。

我曾尝试将其作为expect(() => { ... })来执行,但我无法让它运行断言-看来这只有在您想将其通过管道传送到.toThrow()的情况下才真正有效

以下内容乍看起来很有希望,但实际上并没有将任何内容发送到catch中的error参数:

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');
  }
});

有什么想法吗?预先感谢。

我有一个称为

reactjs jestjs enzyme
1个回答
0
投票

在测试文件中尝试:

© www.soinside.com 2019 - 2024. All rights reserved.