我是单元测试的新手并遇到了问题。我不能让 Enzyme 为我的Element返回null,它有一个if语句!item => null
。
如果没有给出' item prop ',如何检查元素是否为空?
it("should not render without `props.item`", () => {
wrapper.setProps({
item: null,
})
console.log(wrapper.find('ThemeTile').childAt(0).name()) // === 'Link'
expect(wrapper.find('ThemeTile').childAt(0).type()).toEqual(null);
// returns expect(received).toEqual(expected)
// Expected value to equal:
// null
//Received:
// [Function Link]
})
这是ThemeTile的相关渲染方法。
render() {
const { classes, item, href } = this.props;
if(!item) {
return null;
}
const image = buildImageUrl(item, 'square', 300, 300);
return (
<Link to={href} className={classes.root}>
<div className={classes.imageContainer}>
<div className={classes.image} style={{backgroundImage: `url(${image})`}} />
</div>
<Typography className={classes.title}>
{this.props.item.title}
</Typography>
</Link>
);
}
答案 0 :(得分:0)