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();