如何获得null而不是函数的酶类型()?

时间:2018-06-18 09:59:29

标签: javascript reactjs unit-testing jestjs enzyme

我是单元测试的新手并遇到了问题。我不能让 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>
    );
  }

1 个答案:

答案 0 :(得分:0)

有几种可能性来检查酶包装物是否呈现任何物质。以下看起来很干净:

expect(wrapper.getElement()).toBe(null);

有关此问题的讨论,请参阅this thread

相关问题