我有一个带有动态导入的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);