【问题标题】:How to catch such an error with jest and testing-library/react如何用 jest 和 testing-library/react 捕捉这样的错误
【发布时间】:2022-06-15 03:33:43
【问题描述】:

简单地说我想断言在没有 onClick 道具的情况下单击此按钮会导致错误(我知道这是一个愚蠢的案例,但这只是一个粗略的简化)。但不幸的是,无论我如何尝试,我都无法捕捉到这个错误。

伪代码如下所示:

Element.js:

const Element = ({ onClick }) => (
<button onClick={() => onClick('test')}>Test</button>)
);

Element.test.js

it('triggers on click callback', () => {
    const wrapper = render(<Element />);

    expect(userEvent.click(wrapper.getByTestId('test'))).toThrowError();
  });

我收到 3 个 console.error 语句:“console.error Error: Uncaught [TypeError: onClick is not a function]”

还有一个

   expect(received).toThrowError()
    Received function did not throw

这对我来说没有多大意义。请帮助我找到解决方案或至少澄清发生了什么

【问题讨论】:

  • 核心 try catch 块将工作
  • 错误告诉你出了什么问题:“onClick 不是函数”。抛出的是 render 调用,因为您没有传递 onClick 的值。
  • 伙计们,这是绝对清楚的。问题是如何通过测试来捕捉这样的错误

标签: javascript reactjs testing jestjs


【解决方案1】:

我发现的最合适的解决方案是,如果按钮没有适当的处理程序,则不渲染按钮。但是关于捕获此类错误的问题仍然存在

【讨论】:

    猜你喜欢
    • 2020-02-10
    • 2021-02-28
    • 2021-02-11
    • 2020-03-22
    • 2021-10-21
    • 1970-01-01
    • 2021-05-25
    • 1970-01-01
    • 2020-06-20
    相关资源
    最近更新 更多