繁体   English   中英

测试 onOk / onCancel | Ant 设计 [antd]

[英]Test onOk / onCancel | Ant Design [antd]

有什么办法可以测试onOk和onCancel吗? 我已经尝试使用fireEvent.keyDown测试 onCancel,但它没有像我预期的那样工作。

 <>
  <AntdModal
    data-testid="modal-window"
    width={583}
    visible={visible}
    onOk={() => setVisible(false)}
    onCancel={() => setVisible(false)}
    closable={false}
    header={null}
    footer={null}
  >
    <span className="modal-header">
      {headerText}
    </span>
    {children}
  </AntdModal>
</>

我想测试这个的主要原因是因为我需要覆盖我的测试超过 80%...

覆盖结果

*.test.js:

  it('should modal disappear after cancel click', async () => {
    const { container } = render(
      <ModalWindow headerText="header" setVisible={jest.fn} visible>
        <div>children</div>
      </ModalWindow>,
    );

    const modal = screen.getByTestId('modal-window');
    expect(modal).toBeInTheDocument();

    fireEvent.keyDown(container, {
      key: 'Escape',
      code: 'Escape',
      keyCode: 27,
      charCode: 27,
    });

    await waitFor(() => {
      expect(modal).not.toBeInTheDocument();
    });
  });

如果它只是关于代码覆盖率(并且在您的情况下是关于代码气味),我建议将() => setVisible(false)声明为常量。 这将减少(可能产生错误的)代码重复,并且您不需要在代码中测试外部库。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM