如何期望 getByText 在反应测试库中为假?

TML*_*123 12 reactjs jestjs react-testing-library

我正在使用 Jest 和 React 测试库来测试组件。

我正在尝试测试模式,但我遇到了一个奇怪的问题。当我尝试在触发事件之前通过文本获取“模态标题”时,我收到错误,因为渲染的文档中不存在“模态标题”。如果我在触发“打开模态”按钮后尝试查找“模态标题”,它就会起作用。但我还想测试模态在触发事件之前不存在。所以我决定期望“模态标题”为假,但这不起作用。到目前为止,我已经尝试过 toBe(false)、toBeFalsy()、toBeNull() ,甚至尝试查看长度是否为 0,但没有任何提到的工作。我该如何解决这个问题。

it('Test Modal', () => {
    
    const { getByText } = render(<TestApp />);
   
    expect(getByText('Modal Title')).toBe(false);
    fireEvent.click(getByText('Open Modal'));
    expect(getByText('Modal Title')).toBeTruthy();
})
Run Code Online (Sandbox Code Playgroud)

Mar*_*cus 21

您还可能getByText会抛出如下错误:

expect(() => screen.getByText('Modal title')).toThrow();
Run Code Online (Sandbox Code Playgroud)

(请注意开头的 () => 符号。)