开玩笑-测试动态导入失败

时间:2020-02-13 06:04:45

标签: reactjs jestjs enzyme dynamic-import

我有一个带有动态导入的React组件,还有一个Jest / Enzyme测试,该测试正在检查如果其中一个导入错误会发生什么。我遇到一个问题,由于我抛出的错误,Jest无法通过测试,即使使用expect().toThrow()

,我似乎也无法通过它

我不确定我应该在这里做什么...理想情况下,我想让Jest忽略任何错误。

内部组件:

async componentDidMount() {
  try {
    // there are more things in real component and so that is why Promise.all
    const [Card] = await Promise.all([
      import(
        /* webpackChunkName:"@Card" */ './index'
      )
    ]);
    this.setState({ Card });
  } catch(e) {
  }
}

render() {
  const { Card } = this.state;
  if (Card) { ... }
  else { ... }
}

测试:

jest.mock('../../card', () => {
  throw new Error('Forcing async import error');
});
const wrapper = mount(<MyComp {...props} />);
expect(wrapper.find('Loading').prop('dimensions')).toEqual(props.dimensions);

0 个答案:

没有答案