Jestjs Jest,React测试组件不存在
我有这个测试:Jestjs Jest,React测试组件不存在,jestjs,react-testing-library,Jestjs,React Testing Library,我有这个测试: const rendered = render( <TransactionReason reason={{ code: defaultReason }} /> ); expect(rendered.getByTestId('reasonInput')).toBeNull(); const rendered=render( ); expect(rendered.getByTestId('reasonInput')).toBeNull(); 我试图做
const rendered = render(
<TransactionReason
reason={{ code: defaultReason }}
/>
);
expect(rendered.getByTestId('reasonInput')).toBeNull();
const rendered=render(
);
expect(rendered.getByTestId('reasonInput')).toBeNull();
我试图做的是:有一个组件具有testID='reasonInput'
,但是当reason
prop具有我给定的值(代码:defaultReason)时,不会呈现该组件。但是我得到了一个错误,因为Jest找不到id,当然,没有呈现。我认为这会产生一个假值或空值,这就是为什么我尝试使用toBeNull
或toBeFalsy
之类的东西
然后,我如何测试该组件是否不存在?如前所述,getByTestId
和queryByTestId
之间的区别在于,如果没有匹配的元素,前者会抛出错误:
getBy*查询返回查询的第一个匹配节点,并抛出
如果没有匹配的元素或找到多个匹配项,则会出现错误(使用
取而代之的是getAllBy)
queryBy*查询返回查询的第一个匹配节点,并且
如果没有匹配的元素,则返回null。这对于断言
不存在的元素。如果有多个匹配项,则抛出
找到(改用queryalby)
应该是:
expect(rendered.queryByTestId('reasonInput')).toBeNull();