【发布时间】:2021-06-09 20:44:55
【问题描述】:
我正在使用 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();
})
【问题讨论】:
-
expect(queryByText(...)).not.toBeInDocument()? -
@jonrsharpe 不。两者都不起作用。
-
请提供minimal reproducible example 说明它们如何精确地不起作用。
标签: reactjs jestjs react-testing-library