我有一个称为<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'); } });
有什么想法吗?预先感谢。
我有一个称为
在测试文件中尝试: