【发布时间】: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