Jest.js React测试库测试按钮的保存状态

mqkwyuun  于 2023-05-11  发布在  Jest
关注(0)|答案(1)|浏览(204)

我有一个按钮,单击时会将文本短暂更改为文本Saving。如何测试这种状态?我怀疑名字的变化发生得如此之快,它不是被拿起,而不是它被打破。

await act(() => {
  const saveButton = screen.getByRole("button", { name: "Save" });
  fireEvent.click(saveButton);
  expect(saveButton).toHaveAttribute("name", "Saving");
});

这可以在不模拟API请求中的减速的情况下完成吗?

guykilcj

guykilcj1#

尝试将expect()saveButtonact()中取出。

const saveButton = screen.getByRole("button", { name: "Save" });

await act(() => {
  fireEvent.click(saveButton);
});

expect(saveButton).toHaveAttribute("name", "Saving");

expect()act()中时,它不会等待fireEvent.click(saveButton)

备注

intro example上,它不使用act()作为用户事件,只是将test()转换为async函数,并在Assert之前使用await作为用户事件。

相关问题