加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

reactjs – 仅在条件为真时测试显示按钮

发布时间:2020-12-15 05:04:42 所属栏目:百科 来源:网络整理
导读:我有一个渲染函数,如下所示: private render(): JSX.Element { return ( div {this.props.x this.state.y DefaultButton onClick = { this.onDeleteButtonClick } Delete /DefaultButton } /div );} 只有当2条件this.props.x和this.state.y为真时,才显示按
我有一个渲染函数,如下所示:
private render(): JSX.Element {
  return ( 
    <div>
      {this.props.x && this.state.y &&
        <DefaultButton onClick = { this.onDeleteButtonClick } >
          Delete
        </DefaultButton>
      }
    </div>
  );
}

只有当2条件this.props.x和this.state.y为真时,才显示按钮.

同样的,

class TitleContainer extends React.Component {
  private isPageEnabled: boolean = false;
  private isSubmitter: boolean = false;
  render() {
    return (
      <div>
        {this.isPageEnabled && this.isSubmitter &&
          <div>
            <br />
            <SubmitAppFormContainer />
          </div>
        }    
      </div>
    );
   }
 }

只有当2条件为this.isPageEnabled&& this.isSubmitter为true,然后显示SubmitAppFormContainer.

我该怎么写一个测试?请告诉我.谢谢!

我假设您知道如何编写测试.这里棘手的部分是编写易于测试的类.在你的第一种情况下,它可能很简单:
it('shows DefaultButton',() => {
    const shallowRenderer = new ShallowRenderer();
    shallowRenderer.render(<Component
        x={true}
    />);
    const result = shallowRenderer.getRenderOutput();
    expect(result).toMatchSnapshot();
});

创建2个测试,一次传递x = true,另一个传递x = false,所以你测试两种情况.你只需要以某种方式将y状态设置为true.

在你的第二种情况下,TitleContainer似乎更复杂.如何修改isPageEnabled和isSubmitter的值?如果从外面无法进行,则无法正确测试.尽可能使用道具.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读